v1alpha1

package
v0.0.0-...-076cea6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.dash0.com

Index

Constants

View Source
const (
	MonitoringFinalizerId = "operator.dash0.com/dash0-monitoring-finalizer"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "operator.dash0.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type Authorization

type Authorization struct {
	// The Dash0 authorization token. This property is optional, but either this property or the SecretRef property has
	// to be provided. If both are provided, the token will be used and SecretRef will be ignored. The authorization
	// token for your Dash0 organization can be copied from https://app.dash0.com -> organization settings ->
	// "Auth Tokens".
	//
	// +kubebuilder:validation:Optional
	Token *string `json:"token"` // either token or secret ref, with token taking precedence

	// A reference to a Kubernetes secret containing the Dash0 authorization token. This property is optional, and is
	// ignored if the token property is set. The authorization token for your Dash0 organization can be copied from
	// https://app.dash0.com -> organization settings -> "Auth Tokens".
	//
	// +kubebuilder:validation:Optional
	SecretRef *SecretRef `json:"secretRef"`
}

Authorization contains the authorization settings for Dash0.

+kubebuilder:validation:MinProperties=1 +kubebuilder:validation:MaxProperties=1

func (*Authorization) DeepCopy

func (in *Authorization) DeepCopy() *Authorization

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authorization.

func (*Authorization) DeepCopyInto

func (in *Authorization) DeepCopyInto(out *Authorization)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ConditionType

type ConditionType string
const (
	ConditionTypeAvailable ConditionType = "Available"
	ConditionTypeDegraded  ConditionType = "Degraded"
)

type Dash0Configuration

type Dash0Configuration struct {
	// The URL of the Dash0 ingress endpoint to which telemetry data will be sent. This property is mandatory. The value
	// needs to be the OTLP/gRPC endpoint of your Dash0 organization. The correct OTLP/gRPC endpoint can be copied fom
	// https://app.dash0.com -> organization settings -> "Endpoints". The correct endpoint value will always start with
	// `ingress.` and end in `dash0.com:4317`.
	//
	// +kubebuilder:validation:Required
	Endpoint string `json:"endpoint"`

	// The name of the Dash0 dataset to which telemetry data will be sent. This property is optional. If omitted, the
	// dataset "default" will be used.
	//
	// +kubebuilder:default=default
	Dataset string `json:"dataset,omitempty"`

	// Mandatory authorization settings for sending data to Dash0.
	//
	// +kubebuilder:validation:Required
	Authorization Authorization `json:"authorization"`

	// The base URL of the Dash0 API to talk to. This is not where telemetry will be sent, but it is used for managing
	// dashboards and check rules via the operator. This property is optional. The value needs to be the API endpoint
	// of your Dash0 organization. The correct API endpoint can be copied fom https://app.dash0.com -> organization
	// settings -> "Endpoints" -> "API". The correct endpoint value will always start with "https://api." and end in
	// ".dash0.com"
	//
	// +kubebuilder:validation:Optional
	ApiEndpoint string `json:"apiEndpoint,omitempty"`
}

Dash0Configuration describes to which Dash0 ingress endpoint telemetry data will be sent.

func (*Dash0Configuration) DeepCopy

func (in *Dash0Configuration) DeepCopy() *Dash0Configuration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0Configuration.

func (*Dash0Configuration) DeepCopyInto

func (in *Dash0Configuration) DeepCopyInto(out *Dash0Configuration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Dash0Monitoring

type Dash0Monitoring struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// +kubebuilder:default={instrumentWorkloads: "all", prometheusScrapingEnabled: true}
	Spec   Dash0MonitoringSpec   `json:"spec,omitempty"`
	Status Dash0MonitoringStatus `json:"status,omitempty"`
}

Dash0Monitoring is the schema for the Dash0Monitoring API

+kubebuilder:object:root=true +kubebuilder:subresource:status +groupName=operator.dash0.com

func (*Dash0Monitoring) At

func (*Dash0Monitoring) DeepCopy

func (in *Dash0Monitoring) DeepCopy() *Dash0Monitoring

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0Monitoring.

func (*Dash0Monitoring) DeepCopyInto

func (in *Dash0Monitoring) DeepCopyInto(out *Dash0Monitoring)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Dash0Monitoring) DeepCopyObject

func (in *Dash0Monitoring) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Dash0Monitoring) EnsureResourceIsMarkedAsAboutToBeDeleted

func (d *Dash0Monitoring) EnsureResourceIsMarkedAsAboutToBeDeleted()

func (*Dash0Monitoring) EnsureResourceIsMarkedAsAvailable

func (d *Dash0Monitoring) EnsureResourceIsMarkedAsAvailable()

func (*Dash0Monitoring) EnsureResourceIsMarkedAsDegraded

func (d *Dash0Monitoring) EnsureResourceIsMarkedAsDegraded(
	reason string,
	message string,
)

func (*Dash0Monitoring) Get

func (d *Dash0Monitoring) Get() client.Object

func (*Dash0Monitoring) GetCreationTimestamp

func (d *Dash0Monitoring) GetCreationTimestamp() metav1.Time

func (*Dash0Monitoring) GetListReceiver

func (d *Dash0Monitoring) GetListReceiver() client.ObjectList

func (*Dash0Monitoring) GetName

func (d *Dash0Monitoring) GetName() string

func (*Dash0Monitoring) GetNaturalLanguageResourceTypeName

func (d *Dash0Monitoring) GetNaturalLanguageResourceTypeName() string

func (*Dash0Monitoring) GetReceiver

func (d *Dash0Monitoring) GetReceiver() client.Object

func (*Dash0Monitoring) GetResourceTypeName

func (d *Dash0Monitoring) GetResourceTypeName() string

func (*Dash0Monitoring) GetUid

func (d *Dash0Monitoring) GetUid() types.UID

func (*Dash0Monitoring) IsAvailable

func (d *Dash0Monitoring) IsAvailable() bool

func (*Dash0Monitoring) IsClusterResource

func (d *Dash0Monitoring) IsClusterResource() bool

func (*Dash0Monitoring) IsMarkedForDeletion

func (d *Dash0Monitoring) IsMarkedForDeletion() bool

func (*Dash0Monitoring) Items

func (d *Dash0Monitoring) Items(list client.ObjectList) []client.Object

func (*Dash0Monitoring) ReadInstrumentWorkloadsSetting

func (d *Dash0Monitoring) ReadInstrumentWorkloadsSetting() InstrumentWorkloadsMode

func (*Dash0Monitoring) RequestToName

func (d *Dash0Monitoring) RequestToName(ctrl.Request) string

func (*Dash0Monitoring) SetAvailableConditionToUnknown

func (d *Dash0Monitoring) SetAvailableConditionToUnknown()

type Dash0MonitoringList

type Dash0MonitoringList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Dash0Monitoring `json:"items"`
}

Dash0MonitoringList contains a list of Dash0Monitoring resources.

func (*Dash0MonitoringList) DeepCopy

func (in *Dash0MonitoringList) DeepCopy() *Dash0MonitoringList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0MonitoringList.

func (*Dash0MonitoringList) DeepCopyInto

func (in *Dash0MonitoringList) DeepCopyInto(out *Dash0MonitoringList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Dash0MonitoringList) DeepCopyObject

func (in *Dash0MonitoringList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Dash0MonitoringSpec

type Dash0MonitoringSpec struct {
	// The configuration of the observability backend to which telemetry data will be sent. This property is optional.
	// If not set, the operator will use the default export configuration from the cluster-wide
	// Dash0OperatorConfiguration resource, if present. If no Dash0OperatorConfiguration resource has been created for
	// the cluster, or if the Dash0OperatorConfiguration resource does not have at least one export defined, creating a
	// Dash0Monitoring resource without export settings will result in an error.
	//
	// The export can either be Dash0 or another OTLP-compatible backend. You can also combine up to three exporters
	// (i.e. Dash0 plus gRPC plus HTTP). This allows sending the same data to two or three targets simultaneously. When
	// the export setting is present, it has to contain at least one exporter.
	//
	// +kubebuilder:validation:Optional
	Export *Export `json:"export"`

	// Global opt-out for workload instrumentation for the target namespace. There are three possible settings: `all`,
	// `created-and-updated` and `none`. By default, the setting `all` is assumed.
	//
	// If set to `all` (or omitted), the operator will:
	// * instrument existing workloads in the target namespace (i.e. workloads already running in the namespace) when
	//   the Dash0 monitoring resource is deployed,
	// * instrument existing workloads or update the instrumentation of already instrumented workloads in the target
	//   namespace when the Dash0 operator is first started or restarted (for example when updating the
	//   operator),
	// * instrument new workloads in the target namespace when they are deployed, and
	// * instrument changed workloads in the target namespace when changes are applied to them.
	// Note that the first two actions (instrumenting existing workloads) will result in restarting the pods of the
	// affected workloads.
	//
	// If set to `created-and-updated`, the operator will not instrument existing workloads in the target namespace.
	// Instead, it will only:
	// * instrument new workloads in the target namespace when they are deployed, and
	// * instrument changed workloads in the target namespace when changes are applied to them.
	// This setting is useful if you want to avoid pod restarts as a side effect of deploying the Dash0 monitoring
	// resource or restarting the Dash0 operator.
	//
	// You can opt out of instrumenting workloads entirely by setting this option to `none`. With
	// `instrumentWorkloads: none`, workloads in the target namespace will never be instrumented to send telemetry to
	// Dash0.
	//
	// If this setting is omitted, the value `all` is assumed and new/updated as well as existing Kubernetes workloads
	// will be intrumented by the operator to send telemetry to Dash0, as described above.
	//
	// More fine-grained per-workload control over instrumentation is available by setting the label
	// dash0.com/enable=false on individual workloads.
	//
	// +kubebuilder:default=all
	InstrumentWorkloads InstrumentWorkloadsMode `json:"instrumentWorkloads,omitempty"`

	// If enabled, the operator will watch Perses dashboard resources in this namespace and create corresponding
	// dashboards in Dash0 via the Dash0 API.
	// See https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md#managing-dash0-dashboards-with-the-operator
	// for details. This setting is optional, it defaults to true.
	//
	// +kubebuilder:default=true
	SynchronizePersesDashboards *bool `json:"synchronizePersesDashboards,omitempty"`

	// If enabled, the operator will watch Prometheus rule resources in this namespace and create corresponding check
	// rules in Dash0 via the Dash0 API.
	// See https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md#managing-dash0-check-rules-with-the-operator
	// for details. This setting is optional, it defaults to true.
	//
	// +kubebuilder:default=true
	SynchronizePrometheusRules *bool `json:"synchronizePrometheusRules,omitempty"`

	// If enabled, the operator will configure its OpenTelemetry collector to scrape metrics from pods in the namespace
	// of this Dash0Monitoring resource according to their prometheus.io/scrape annotations via the OpenTelemetry
	// Prometheus receiver. This setting is optional, it defaults to true.
	//
	// +kubebuilder:default=true
	PrometheusScrapingEnabled *bool `json:"prometheusScrapingEnabled,omitempty"`
}

Dash0MonitoringSpec describes the details of monitoring a single Kubernetes namespace with Dash0 and sending telemetry to an observability backend.

func (*Dash0MonitoringSpec) DeepCopy

func (in *Dash0MonitoringSpec) DeepCopy() *Dash0MonitoringSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0MonitoringSpec.

func (*Dash0MonitoringSpec) DeepCopyInto

func (in *Dash0MonitoringSpec) DeepCopyInto(out *Dash0MonitoringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Dash0MonitoringStatus

type Dash0MonitoringStatus struct {
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

	// The spec.instrumentWorkloads setting that has been observed in the previous reconcile cycle.
	// +kubebuilder:validation:Optional
	PreviousInstrumentWorkloads InstrumentWorkloadsMode `json:"previousInstrumentWorkloads,omitempty"`

	// Shows results of synchronizing Perses dashboard resources in this namespace via the Dash0 API.
	// +kubebuilder:validation:Optional
	PersesDashboardSynchronizationResults map[string]PersesDashboardSynchronizationResults `json:"persesDashboardSynchronizationResults,omitempty"`

	// Shows results of synchronizing Prometheus rule resources in this namespace via the Dash0 API.
	// +kubebuilder:validation:Optional
	PrometheusRuleSynchronizationResults map[string]PrometheusRuleSynchronizationResult `json:"prometheusRuleSynchronizationResults,omitempty"`
}

Dash0MonitoringStatus defines the observed state of the Dash0Monitoring monitoring resource.

func (*Dash0MonitoringStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0MonitoringStatus.

func (*Dash0MonitoringStatus) DeepCopyInto

func (in *Dash0MonitoringStatus) DeepCopyInto(out *Dash0MonitoringStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Dash0OperatorConfiguration

type Dash0OperatorConfiguration struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   Dash0OperatorConfigurationSpec   `json:"spec,omitempty"`
	Status Dash0OperatorConfigurationStatus `json:"status,omitempty"`
}

Dash0OperatorConfiguration is the schema for the Dash0OperatorConfiguration API

+kubebuilder:object:root=true +kubebuilder:resource:scope=Cluster +kubebuilder:subresource:status +groupName=operator.dash0.com

func (*Dash0OperatorConfiguration) At

func (*Dash0OperatorConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0OperatorConfiguration.

func (*Dash0OperatorConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Dash0OperatorConfiguration) DeepCopyObject

func (in *Dash0OperatorConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Dash0OperatorConfiguration) EnsureResourceIsMarkedAsAboutToBeDeleted

func (d *Dash0OperatorConfiguration) EnsureResourceIsMarkedAsAboutToBeDeleted()

func (*Dash0OperatorConfiguration) EnsureResourceIsMarkedAsAvailable

func (d *Dash0OperatorConfiguration) EnsureResourceIsMarkedAsAvailable()

func (*Dash0OperatorConfiguration) EnsureResourceIsMarkedAsDegraded

func (d *Dash0OperatorConfiguration) EnsureResourceIsMarkedAsDegraded(
	reason string,
	message string,
)

func (*Dash0OperatorConfiguration) Get

func (*Dash0OperatorConfiguration) GetCreationTimestamp

func (d *Dash0OperatorConfiguration) GetCreationTimestamp() metav1.Time

func (*Dash0OperatorConfiguration) GetDash0AuthorizationIfConfigured

func (d *Dash0OperatorConfiguration) GetDash0AuthorizationIfConfigured() *Authorization

func (*Dash0OperatorConfiguration) GetListReceiver

func (d *Dash0OperatorConfiguration) GetListReceiver() client.ObjectList

func (*Dash0OperatorConfiguration) GetName

func (d *Dash0OperatorConfiguration) GetName() string

func (*Dash0OperatorConfiguration) GetNaturalLanguageResourceTypeName

func (d *Dash0OperatorConfiguration) GetNaturalLanguageResourceTypeName() string

func (*Dash0OperatorConfiguration) GetReceiver

func (d *Dash0OperatorConfiguration) GetReceiver() client.Object

func (*Dash0OperatorConfiguration) GetResourceTypeName

func (d *Dash0OperatorConfiguration) GetResourceTypeName() string

func (*Dash0OperatorConfiguration) GetUid

func (d *Dash0OperatorConfiguration) GetUid() types.UID

func (*Dash0OperatorConfiguration) HasDash0ApiAccessConfigured

func (d *Dash0OperatorConfiguration) HasDash0ApiAccessConfigured() bool

func (*Dash0OperatorConfiguration) IsAvailable

func (d *Dash0OperatorConfiguration) IsAvailable() bool

func (*Dash0OperatorConfiguration) IsClusterResource

func (d *Dash0OperatorConfiguration) IsClusterResource() bool

func (*Dash0OperatorConfiguration) IsMarkedForDeletion

func (d *Dash0OperatorConfiguration) IsMarkedForDeletion() bool

func (*Dash0OperatorConfiguration) Items

func (*Dash0OperatorConfiguration) RequestToName

func (d *Dash0OperatorConfiguration) RequestToName(ctrl.Request) string

func (*Dash0OperatorConfiguration) SetAvailableConditionToUnknown

func (d *Dash0OperatorConfiguration) SetAvailableConditionToUnknown()

type Dash0OperatorConfigurationList

type Dash0OperatorConfigurationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Dash0OperatorConfiguration `json:"items"`
}

Dash0OperatorConfigurationList contains a list of Dash0OperatorConfiguration resources.

func (*Dash0OperatorConfigurationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0OperatorConfigurationList.

func (*Dash0OperatorConfigurationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Dash0OperatorConfigurationList) DeepCopyObject

func (in *Dash0OperatorConfigurationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type Dash0OperatorConfigurationSpec

type Dash0OperatorConfigurationSpec struct {
	// The configuration of the default observability backend to which telemetry data will be sent by the operator, as
	// well as the backend that will receive the operator's self-monitoring data. This property is mandatory.
	// This can either be Dash0 or another OTLP-compatible backend. You can also combine up to three exporters (i.e.
	// Dash0 plus gRPC plus HTTP). This allows sending the same data to two or three targets simultaneously. At least
	// one exporter has to be defined.
	//
	// Please note that self-monitoring data is only sent to one backend, with Dash0 taking precedence over gRPC and
	// HTTP, and gRPC taking precedence over HTTP if multiple exports are defined. Furthermore, HTTP export with JSON
	// encoding is not supported for self-monitoring telemetry.
	//
	// +kubebuilder:validation:Required
	Export *Export `json:"export,omitempty"`

	// Global opt-out for self-monitoring for this operator
	// +kubebuilder:default={enabled: true}
	SelfMonitoring SelfMonitoring `json:"selfMonitoring,omitempty"`

	// If enabled, the operator will collect Kubernetes infrastructure metrics. This setting is optional, it defaults
	// to true.
	//
	// +kubebuilder:default=true
	KubernetesInfrastructureMetricsCollectionEnabled *bool `json:"kubernetesInfrastructureMetricsCollectionEnabled,omitempty"`
}

Dash0OperatorConfigurationSpec describes cluster-wide configuration settings for the Dash0 operator.

func (*Dash0OperatorConfigurationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0OperatorConfigurationSpec.

func (*Dash0OperatorConfigurationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Dash0OperatorConfigurationStatus

type Dash0OperatorConfigurationStatus struct {
	Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`
}

Dash0OperatorConfigurationStatus defines the observed state of the Dash0 operator configuration resource.

func (*Dash0OperatorConfigurationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dash0OperatorConfigurationStatus.

func (*Dash0OperatorConfigurationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Export

type Export struct {
	// The configuration of the Dash0 ingress endpoint to which telemetry data will be sent.
	//
	// +kubebuilder:validation:Optional
	Dash0 *Dash0Configuration `json:"dash0,omitempty"`

	// The settings for an exporter to send telemetry to an arbitrary OTLP-compatible receiver via HTTP.
	//
	// +kubebuilder:validation:Optional
	Http *HttpConfiguration `json:"http,omitempty"`

	// The settings for an exporter to send telemetry to an arbitrary OTLP-compatible receiver via gRPC.
	//
	// +kubebuilder:validation:Optional
	Grpc *GrpcConfiguration `json:"grpc,omitempty"`
}

Export describes the observability backend to which telemetry data will be sent. This can either be Dash0 or another OTLP-compatible backend. You can also combine up to three exporters (i.e. Dash0 plus gRPC plus HTTP). This allows sending the same data to two or three targets simultaneously. At least one exporter has to be defined.

+kubebuilder:validation:MinProperties=1

func (*Export) DeepCopy

func (in *Export) DeepCopy() *Export

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Export.

func (*Export) DeepCopyInto

func (in *Export) DeepCopyInto(out *Export)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type GrpcConfiguration

type GrpcConfiguration struct {
	// The URL of the OTLP-compatible receiver to which telemetry data will be sent. This property is mandatory.
	//
	// +kubebuilder:validation:Required
	Endpoint string `json:"endpoint"`

	// Additional headers to be sent with each gRPC request, for example for authorization. This property is optional.
	//
	// +kubebuilder:validation:Optional
	Headers []Header `json:"headers,omitempty"`
}

GrpcConfiguration descibe the settings for an exporter to send telemetry to an arbitrary OTLP-compatible receiver via gRPC.

func (*GrpcConfiguration) DeepCopy

func (in *GrpcConfiguration) DeepCopy() *GrpcConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrpcConfiguration.

func (*GrpcConfiguration) DeepCopyInto

func (in *GrpcConfiguration) DeepCopyInto(out *GrpcConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Header struct {
	// +kubebuilder:validation:Required
	Name string `json:"name"`
	// +kubebuilder:validation:Required
	Value string `json:"value"`
}

func (*Header) DeepCopy

func (in *Header) DeepCopy() *Header

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Header.

func (*Header) DeepCopyInto

func (in *Header) DeepCopyInto(out *Header)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HttpConfiguration

type HttpConfiguration struct {
	// The URL of the OTLP-compatible receiver to which telemetry data will be sent. This property is mandatory.
	//
	// +kubebuilder:validation:Required
	Endpoint string `json:"endpoint"`

	// Additional headers to be sent with each HTTP request, for example for authorization. This property is optional.
	//
	// +kubebuilder:validation:Optional
	Headers []Header `json:"headers,omitempty"`

	// The encoding of the OTLP data when sent via HTTP. Can be either proto or json, defaults to proto.
	//
	// +kubebuilder:default=proto
	Encoding OtlpEncoding `json:"encoding,omitempty"`
}

HttpConfiguration describe the settings for an exporter to send telemetry to an arbitrary OTLP-compatible receiver via HTTP.

func (*HttpConfiguration) DeepCopy

func (in *HttpConfiguration) DeepCopy() *HttpConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HttpConfiguration.

func (*HttpConfiguration) DeepCopyInto

func (in *HttpConfiguration) DeepCopyInto(out *HttpConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstrumentWorkloadsMode

type InstrumentWorkloadsMode string

InstrumentWorkloadsMode describes when exactly workloads will be instrumented. Only one of the following modes may be specified. If none of the following policies is specified, the default one is All. See Dash0MonitoringSpec#InstrumentWorkloads for more details.

+kubebuilder:validation:Enum=all;created-and-updated;none

const (
	// All allows instrumenting existing as well as new and updated workloads.
	All InstrumentWorkloadsMode = "all"

	// CreatedAndUpdated disables instrumenting existing workloads, but new and updated workloads will be instrumented.
	CreatedAndUpdated InstrumentWorkloadsMode = "created-and-updated"

	// None will disable instrumentation of workloads entirely for a namespace.
	None InstrumentWorkloadsMode = "none"
)

type OtlpEncoding

type OtlpEncoding string

OtlpEncoding describes the encoding of the OTLP data when sent via HTTP.

+kubebuilder:validation:Enum=proto;json

const (
	Proto OtlpEncoding = "proto"
	Json  OtlpEncoding = "json"
)

type PersesDashboardSynchronizationResults

type PersesDashboardSynchronizationResults struct {
	SynchronizationStatus SynchronizationStatus `json:"synchronizationStatus"`
	SynchronizedAt        metav1.Time           `json:"synchronizedAt"`
	SynchronizationError  string                `json:"synchronizationError,omitempty"`
	ValidationIssues      []string              `json:"validationIssues,omitempty"`
}

func (*PersesDashboardSynchronizationResults) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesDashboardSynchronizationResults.

func (*PersesDashboardSynchronizationResults) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PrometheusRuleSynchronizationResult

type PrometheusRuleSynchronizationResult struct {
	SynchronizationStatus      SynchronizationStatus `json:"synchronizationStatus"`
	SynchronizedAt             metav1.Time           `json:"synchronizedAt"`
	AlertingRulesTotal         int                   `json:"alertingRulesTotal"`
	SynchronizedRulesTotal     int                   `json:"synchronizedRulesTotal"`
	SynchronizedRules          []string              `json:"synchronizedRules,omitempty"`
	SynchronizationErrorsTotal int                   `json:"synchronizationErrorsTotal"`
	SynchronizationErrors      map[string]string     `json:"synchronizationErrors,omitempty"`
	InvalidRulesTotal          int                   `json:"invalidRulesTotal"`
	InvalidRules               map[string][]string   `json:"invalidRules,omitempty"`
}

func (*PrometheusRuleSynchronizationResult) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleSynchronizationResult.

func (*PrometheusRuleSynchronizationResult) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretRef

type SecretRef struct {
	// The name of the secret containing the Dash0 authorization token. Defaults to "dash0-authorization-secret".
	// +kubebuilder:default=dash0-authorization-secret
	Name string `json:"name"`

	// The key of the value which contains the Dash0 authorization token. Defaults to "token"
	// +kubebuilder:default=token
	Key string `json:"key"`
}

func (*SecretRef) DeepCopy

func (in *SecretRef) DeepCopy() *SecretRef

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretRef.

func (*SecretRef) DeepCopyInto

func (in *SecretRef) DeepCopyInto(out *SecretRef)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SelfMonitoring

type SelfMonitoring struct {
	// If enabled, the operator will collect self-monitoring telemetry and send it to the Dash0 Insights dataset of
	// the configured Dash0 backend. This setting is optional, it defaults to true.
	//
	// +kubebuilder:default=true
	Enabled *bool `json:"enabled"`
}

SelfMonitoring describes how the operator will report telemetry about its working to the backend.

func (*SelfMonitoring) DeepCopy

func (in *SelfMonitoring) DeepCopy() *SelfMonitoring

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SelfMonitoring.

func (*SelfMonitoring) DeepCopyInto

func (in *SelfMonitoring) DeepCopyInto(out *SelfMonitoring)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SynchronizationStatus

type SynchronizationStatus string

SynchronizationStatus describes the result of synchronizing a third-party Kubernetes resource (Perses dashboard, Prometheus rule) to the Dash0 API.

+kubebuilder:validation:Enum=successful;partially-successful;failed

const (
	// Successful means all items have been synchronized.
	Successful SynchronizationStatus = "successful"

	// PartiallySuccessful means some items have been synchronized and for some the synchronization has failed.
	PartiallySuccessful SynchronizationStatus = "partially-successful"

	// Failed means synchronization has failed for all items.
	Failed SynchronizationStatus = "failed"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL