Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group. +kubebuilder:object:generate=true +groupName=opentelemetry.io
Index ¶
- Variables
- func SetupInstrumentationWebhook(mgr ctrl.Manager, cfg config.Config) error
- func SetupOpAMPBridgeWebhook(mgr ctrl.Manager, cfg config.Config) error
- func SetupTargetAllocatorWebhook(mgr ctrl.Manager, cfg config.Config, reviewer *rbac.Reviewer) error
- type AgentDescription
- type ApacheHttpd
- type AutoscalerSpec
- type ConfigMapsSpec
- type Defaults
- type DotNet
- type Exporter
- type Extensions
- type Go
- type Ingress
- type IngressRuleType
- type IngressType
- type Instrumentation
- type InstrumentationList
- type InstrumentationSpec
- type InstrumentationStatus
- type InstrumentationWebhook
- func (w InstrumentationWebhook) Default(ctx context.Context, obj runtime.Object) error
- func (w InstrumentationWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (w InstrumentationWebhook) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (w InstrumentationWebhook) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)
- type Java
- type ManagementStateType
- type MetricSpec
- type MetricsConfigSpec
- type Mode
- type Nginx
- type NodeJS
- type ObservabilitySpec
- type OpAMPBridge
- type OpAMPBridgeCapability
- type OpAMPBridgeList
- type OpAMPBridgeSpec
- type OpAMPBridgeStatus
- type OpAMPBridgeWebhook
- func (o *OpAMPBridgeWebhook) Default(ctx context.Context, obj runtime.Object) error
- func (o *OpAMPBridgeWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (o *OpAMPBridgeWebhook) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (o *OpAMPBridgeWebhook) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)
- type OpenShiftRoute
- type OpenTelemetryCollector
- func (dst *OpenTelemetryCollector) ConvertFrom(srcRaw conversion.Hub) error
- func (src *OpenTelemetryCollector) ConvertTo(dstRaw conversion.Hub) error
- func (in *OpenTelemetryCollector) DeepCopy() *OpenTelemetryCollector
- func (in *OpenTelemetryCollector) DeepCopyInto(out *OpenTelemetryCollector)
- func (in *OpenTelemetryCollector) DeepCopyObject() runtime.Object
- type OpenTelemetryCollectorList
- type OpenTelemetryCollectorSpec
- type OpenTelemetryCollectorStatus
- type OpenTelemetryTargetAllocator
- type OpenTelemetryTargetAllocatorAllocationStrategy
- type OpenTelemetryTargetAllocatorPrometheusCR
- type PodDisruptionBudgetSpec
- type PortsSpec
- type Probe
- type Propagator
- type Python
- type Resource
- type Sampler
- type SamplerType
- type ScaleSubresourceStatus
- type TLS
- type TLSRouteTerminationType
- type TargetAllocator
- type TargetAllocatorList
- type TargetAllocatorSpec
- type TargetAllocatorStatus
- type TargetAllocatorWebhook
- func (w TargetAllocatorWebhook) Default(_ context.Context, obj runtime.Object) error
- func (w TargetAllocatorWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (w TargetAllocatorWebhook) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (w TargetAllocatorWebhook) ValidateUpdate(ctx context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type UpgradeStrategy
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "opentelemetry.io", 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 ¶
func SetupInstrumentationWebhook ¶ added in v0.87.0
func SetupOpAMPBridgeWebhook ¶ added in v0.88.0
Types ¶
type AgentDescription ¶ added in v0.121.0
type AgentDescription struct {
// NonIdentifyingAttributes are a map of key-value pairs that may be specified to provide
// extra information about the agent to the OpAMP server.
NonIdentifyingAttributes map[string]string `json:"non_identifying_attributes"`
}
func (*AgentDescription) DeepCopy ¶ added in v0.121.0
func (in *AgentDescription) DeepCopy() *AgentDescription
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentDescription.
func (*AgentDescription) DeepCopyInto ¶ added in v0.121.0
func (in *AgentDescription) DeepCopyInto(out *AgentDescription)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApacheHttpd ¶ added in v0.69.0
type ApacheHttpd struct {
// Image is a container image with Apache SDK and auto-instrumentation.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines Apache HTTPD specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Attrs defines Apache HTTPD agent specific attributes. The precedence is:
// `agent default attributes` > `instrument spec attributes` .
// Attributes are documented at https://github.com/open-telemetry/opentelemetry-cpp-contrib/tree/main/instrumentation/otel-webserver-module
// +optional
Attrs []corev1.EnvVar `json:"attrs,omitempty"`
// Apache HTTPD server version. One of 2.4 or 2.2. Default is 2.4
// +optional
Version string `json:"version,omitempty"`
// Location of Apache HTTPD server configuration.
// Needed only if different from default "/usr/local/apache2/conf"
// +optional
ConfigPath string `json:"configPath,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
}
ApacheHttpd defines Apache SDK and instrumentation configuration.
func (*ApacheHttpd) DeepCopy ¶ added in v0.69.0
func (in *ApacheHttpd) DeepCopy() *ApacheHttpd
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApacheHttpd.
func (*ApacheHttpd) DeepCopyInto ¶ added in v0.69.0
func (in *ApacheHttpd) DeepCopyInto(out *ApacheHttpd)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AutoscalerSpec ¶ added in v0.60.0
type AutoscalerSpec struct {
// MinReplicas sets a lower bound to the autoscaling feature. Set this if you are using autoscaling. It must be at least 1
// +optional
MinReplicas *int32 `json:"minReplicas,omitempty"`
// MaxReplicas sets an upper bound to the autoscaling feature. If MaxReplicas is set autoscaling is enabled.
// +optional
MaxReplicas *int32 `json:"maxReplicas,omitempty"`
// +optional
Behavior *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"`
// Metrics is meant to provide a customizable way to configure HPA metrics.
// currently the only supported custom metrics is type=Pod.
// Use TargetCPUUtilization or TargetMemoryUtilization instead if scaling on these common resource metrics.
// +optional
Metrics []MetricSpec `json:"metrics,omitempty"`
// TargetCPUUtilization sets the target average CPU used across all replicas.
// If average CPU exceeds this value, the HPA will scale up. Defaults to 90 percent.
// +optional
TargetCPUUtilization *int32 `json:"targetCPUUtilization,omitempty"`
// +optional
// TargetMemoryUtilization sets the target average memory utilization across all replicas
TargetMemoryUtilization *int32 `json:"targetMemoryUtilization,omitempty"`
}
AutoscalerSpec defines the OpenTelemetryCollector's pod autoscaling specification.
func (*AutoscalerSpec) DeepCopy ¶ added in v0.60.0
func (in *AutoscalerSpec) DeepCopy() *AutoscalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscalerSpec.
func (*AutoscalerSpec) DeepCopyInto ¶ added in v0.60.0
func (in *AutoscalerSpec) DeepCopyInto(out *AutoscalerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapsSpec ¶ added in v0.85.0
type ConfigMapsSpec struct {
// Configmap defines name and path where the configMaps should be mounted.
Name string `json:"name"`
MountPath string `json:"mountpath"`
}
func (*ConfigMapsSpec) DeepCopy ¶ added in v0.85.0
func (in *ConfigMapsSpec) DeepCopy() *ConfigMapsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapsSpec.
func (*ConfigMapsSpec) DeepCopyInto ¶ added in v0.85.0
func (in *ConfigMapsSpec) DeepCopyInto(out *ConfigMapsSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Defaults ¶ added in v0.110.0
type Defaults struct {
// UseLabelsForResourceAttributes defines whether to use common labels for resource attributes:
// Note: first entry wins:
// - `app.kubernetes.io/instance` becomes `service.name`
// - `app.kubernetes.io/name` becomes `service.name`
// - `app.kubernetes.io/version` becomes `service.version`
UseLabelsForResourceAttributes bool `json:"useLabelsForResourceAttributes,omitempty"`
}
Defaults defines default values for the instrumentation.
func (*Defaults) DeepCopy ¶ added in v0.110.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Defaults.
func (*Defaults) DeepCopyInto ¶ added in v0.110.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DotNet ¶ added in v0.57.2
type DotNet struct {
// Image is a container image with DotNet SDK and auto-instrumentation.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines DotNet specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
}
DotNet defines DotNet SDK and instrumentation configuration.
func (*DotNet) DeepCopy ¶ added in v0.57.2
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DotNet.
func (*DotNet) DeepCopyInto ¶ added in v0.57.2
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Exporter ¶
type Exporter struct {
// Endpoint is address of the collector with OTLP endpoint.
// If the endpoint defines https:// scheme TLS has to be specified.
// +optional
Endpoint string `json:"endpoint,omitempty"`
// TLS defines certificates for TLS.
// TLS needs to be enabled by specifying https:// scheme in the Endpoint.
TLS *TLS `json:"tls,omitempty"`
}
Exporter defines OTLP exporter configuration.
func (*Exporter) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Exporter.
func (*Exporter) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Extensions ¶ added in v0.98.0
type Extensions struct {
// Image is a container image with extensions auto-instrumentation JAR.
Image string `json:"image"`
// Dir is a directory with extensions auto-instrumentation JAR.
Dir string `json:"dir"`
}
func (*Extensions) DeepCopy ¶ added in v0.98.0
func (in *Extensions) DeepCopy() *Extensions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Extensions.
func (*Extensions) DeepCopyInto ¶ added in v0.98.0
func (in *Extensions) DeepCopyInto(out *Extensions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Go ¶ added in v0.77.0
type Go struct {
// Image is a container image with Go SDK and auto-instrumentation.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines Go specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
}
func (*Go) DeepCopy ¶ added in v0.77.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Go.
func (*Go) DeepCopyInto ¶ added in v0.77.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Ingress ¶ added in v0.61.0
type Ingress struct {
// Type default value is: ""
// Supported types are: ingress, route
Type IngressType `json:"type,omitempty"`
// RuleType defines how Ingress exposes collector receivers.
// IngressRuleTypePath ("path") exposes each receiver port on a unique path on single domain defined in Hostname.
// IngressRuleTypeSubdomain ("subdomain") exposes each receiver port on a unique subdomain of Hostname.
// Default is IngressRuleTypePath ("path").
RuleType IngressRuleType `json:"ruleType,omitempty"`
// Hostname by which the ingress proxy can be reached.
// +optional
Hostname string `json:"hostname,omitempty"`
// Annotations to add to ingress.
// e.g. 'cert-manager.io/cluster-issuer: "letsencrypt"'
// +optional
Annotations map[string]string `json:"annotations,omitempty"`
// TLS configuration.
// +optional
TLS []networkingv1.IngressTLS `json:"tls,omitempty"`
// IngressClassName is the name of an IngressClass cluster resource. Ingress
// controller implementations use this field to know whether they should be
// serving this Ingress resource.
// +optional
IngressClassName *string `json:"ingressClassName,omitempty"`
// Route is an OpenShift specific section that is only considered when
// type "route" is used.
// +optional
Route OpenShiftRoute `json:"route,omitempty"`
}
Ingress is used to specify how OpenTelemetry Collector is exposed. This functionality is only available if one of the valid modes is set. Valid modes are: deployment, daemonset and statefulset. NOTE: If this feature is activated, all specified receivers are exposed. Currently this has a few limitations. Depending on the ingress controller there are problems with TLS and gRPC. SEE: https://github.com/open-telemetry/opentelemetry-operator/issues/1306. NOTE: As a workaround, port name and appProtocol could be specified directly in the CR. SEE: OpenTelemetryCollector.spec.ports[index].
func (*Ingress) DeepCopy ¶ added in v0.61.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.
func (*Ingress) DeepCopyInto ¶ added in v0.61.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressRuleType ¶ added in v0.83.0
type IngressRuleType string
IngressRuleType defines how the collector receivers will be exposed in the Ingress.
+kubebuilder:validation:Enum=path;subdomain
const ( // IngressRuleTypePath configures Ingress to use single host with multiple paths. // This configuration might require additional ingress setting to rewrite paths. IngressRuleTypePath IngressRuleType = "path" // IngressRuleTypeSubdomain configures Ingress to use multiple hosts - one for each exposed // receiver port. The port name is used as a subdomain for the host defined in the Ingress e.g. otlp-http.example.com. IngressRuleTypeSubdomain IngressRuleType = "subdomain" )
type IngressType ¶ added in v0.61.0
type IngressType string
IngressType represents how a collector should be exposed (ingress vs route). +kubebuilder:validation:Enum=ingress;route
const ( // IngressTypeNginx specifies that an ingress entry should be created. IngressTypeNginx IngressType = "ingress" // IngressTypeRoute specifies that a route entry should be created. IngressTypeRoute IngressType = "route" )
type Instrumentation ¶
type Instrumentation struct {
Status InstrumentationStatus `json:"status,omitempty"`
metav1.TypeMeta `json:",inline"`
Spec InstrumentationSpec `json:"spec,omitempty"`
metav1.ObjectMeta `json:"metadata,omitempty"`
}
Instrumentation is the spec for OpenTelemetry instrumentation.
func (*Instrumentation) DeepCopy ¶
func (in *Instrumentation) DeepCopy() *Instrumentation
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Instrumentation.
func (*Instrumentation) DeepCopyInto ¶
func (in *Instrumentation) DeepCopyInto(out *Instrumentation)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Instrumentation) DeepCopyObject ¶
func (in *Instrumentation) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type InstrumentationList ¶
type InstrumentationList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Instrumentation `json:"items"`
}
InstrumentationList contains a list of Instrumentation.
func (*InstrumentationList) DeepCopy ¶
func (in *InstrumentationList) DeepCopy() *InstrumentationList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstrumentationList.
func (*InstrumentationList) DeepCopyInto ¶
func (in *InstrumentationList) DeepCopyInto(out *InstrumentationList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*InstrumentationList) DeepCopyObject ¶
func (in *InstrumentationList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type InstrumentationSpec ¶
type InstrumentationSpec struct {
// Exporter defines exporter configuration.
// +optional
Exporter `json:"exporter,omitempty"`
// Resource defines the configuration for the resource attributes, as defined by the OpenTelemetry specification.
// +optional
Resource Resource `json:"resource,omitempty"`
// Propagators defines inter-process context propagation configuration.
// Values in this list will be set in the OTEL_PROPAGATORS env var.
// Enum=tracecontext;baggage;b3;b3multi;jaeger;xray;ottrace;none
// +optional
Propagators []Propagator `json:"propagators,omitempty"`
// Sampler defines sampling configuration.
// +optional
Sampler `json:"sampler,omitempty"`
// Defaults defines default values for the instrumentation.
Defaults Defaults `json:"defaults,omitempty"`
// Env defines common env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Java defines configuration for java auto-instrumentation.
// +optional
Java Java `json:"java,omitempty"`
// NodeJS defines configuration for nodejs auto-instrumentation.
// +optional
NodeJS NodeJS `json:"nodejs,omitempty"`
// Python defines configuration for python auto-instrumentation.
// +optional
Python Python `json:"python,omitempty"`
// DotNet defines configuration for DotNet auto-instrumentation.
// +optional
DotNet DotNet `json:"dotnet,omitempty"`
// Go defines configuration for Go auto-instrumentation.
// When using Go auto-instrumentation you must provide a value for the OTEL_GO_AUTO_TARGET_EXE env var via the
// Instrumentation env vars or via the instrumentation.opentelemetry.io/otel-go-auto-target-exe pod annotation.
// Failure to set this value causes instrumentation injection to abort, leaving the original pod unchanged.
// +optional
Go Go `json:"go,omitempty"`
// ApacheHttpd defines configuration for Apache HTTPD auto-instrumentation.
// +optional
ApacheHttpd ApacheHttpd `json:"apacheHttpd,omitempty"`
// Nginx defines configuration for Nginx auto-instrumentation.
// +optional
Nginx Nginx `json:"nginx,omitempty"`
// ImagePullPolicy
// One of Always, Never, IfNotPresent.
// Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
// +optional
ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
}
InstrumentationSpec defines the desired state of OpenTelemetry SDK and instrumentation.
func (*InstrumentationSpec) DeepCopy ¶
func (in *InstrumentationSpec) DeepCopy() *InstrumentationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstrumentationSpec.
func (*InstrumentationSpec) DeepCopyInto ¶
func (in *InstrumentationSpec) DeepCopyInto(out *InstrumentationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstrumentationStatus ¶
type InstrumentationStatus struct {
}
InstrumentationStatus defines status of the instrumentation.
func (*InstrumentationStatus) DeepCopy ¶
func (in *InstrumentationStatus) DeepCopy() *InstrumentationStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstrumentationStatus.
func (*InstrumentationStatus) DeepCopyInto ¶
func (in *InstrumentationStatus) DeepCopyInto(out *InstrumentationStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstrumentationWebhook ¶ added in v0.87.0
type InstrumentationWebhook struct {
// contains filtered or unexported fields
}
func NewInstrumentationWebhook ¶ added in v0.87.0
func (InstrumentationWebhook) ValidateCreate ¶ added in v0.87.0
func (InstrumentationWebhook) ValidateDelete ¶ added in v0.87.0
func (InstrumentationWebhook) ValidateUpdate ¶ added in v0.87.0
type Java ¶
type Java struct {
// Image is a container image with javaagent auto-instrumentation JAR.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines java specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resources,omitempty"`
// Extensions defines java specific extensions.
// All extensions are copied to a single directory; if a JAR with the same name exists, it will be overwritten.
// +optional
Extensions []Extensions `json:"extensions,omitempty"`
}
Java defines Java SDK and instrumentation configuration.
func (*Java) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Java.
func (*Java) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ManagementStateType ¶ added in v0.82.0
type ManagementStateType string
ManagementStateType defines the type for CR management states.
+kubebuilder:validation:Enum=managed;unmanaged
const ( // ManagementStateManaged when the OpenTelemetryCollector custom resource should be // reconciled by the operator. ManagementStateManaged ManagementStateType = "managed" // ManagementStateUnmanaged when the OpenTelemetryCollector custom resource should not be // reconciled by the operator. ManagementStateUnmanaged ManagementStateType = "unmanaged" )
type MetricSpec ¶ added in v0.78.0
type MetricSpec struct {
Type autoscalingv2.MetricSourceType `json:"type"`
Pods *autoscalingv2.PodsMetricSource `json:"pods,omitempty"`
}
MetricSpec defines a subset of metrics to be defined for the HPA's metric array more metric type can be supported as needed. See https://pkg.go.dev/k8s.io/api/autoscaling/v2#MetricSpec for reference.
func (*MetricSpec) DeepCopy ¶ added in v0.78.0
func (in *MetricSpec) DeepCopy() *MetricSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.
func (*MetricSpec) DeepCopyInto ¶ added in v0.78.0
func (in *MetricSpec) DeepCopyInto(out *MetricSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MetricsConfigSpec ¶ added in v0.82.0
type MetricsConfigSpec struct {
// EnableMetrics specifies if ServiceMonitor or PodMonitor(for sidecar mode) should be created for the service managed by the OpenTelemetry Operator.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Create ServiceMonitors for OpenTelemetry Collector"
EnableMetrics bool `json:"enableMetrics,omitempty"`
// DisablePrometheusAnnotations controls the automatic addition of default Prometheus annotations
// ('prometheus.io/scrape', 'prometheus.io/port', and 'prometheus.io/path')
//
// +optional
// +kubebuilder:validation:Optional
DisablePrometheusAnnotations bool `json:"DisablePrometheusAnnotations,omitempty"`
}
MetricsConfigSpec defines a metrics config.
func (*MetricsConfigSpec) DeepCopy ¶ added in v0.82.0
func (in *MetricsConfigSpec) DeepCopy() *MetricsConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsConfigSpec.
func (*MetricsConfigSpec) DeepCopyInto ¶ added in v0.82.0
func (in *MetricsConfigSpec) DeepCopyInto(out *MetricsConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Mode ¶
type Mode string
Mode represents how the collector should be deployed (deployment vs. daemonset) +kubebuilder:validation:Enum=daemonset;deployment;sidecar;statefulset
const ( // ModeDaemonSet specifies that the collector should be deployed as a Kubernetes DaemonSet. ModeDaemonSet Mode = "daemonset" // ModeDeployment specifies that the collector should be deployed as a Kubernetes Deployment. ModeDeployment Mode = "deployment" // ModeSidecar specifies that the collector should be deployed as a sidecar to pods. ModeSidecar Mode = "sidecar" // ModeStatefulSet specifies that the collector should be deployed as a Kubernetes StatefulSet. ModeStatefulSet Mode = "statefulset" )
type Nginx ¶ added in v0.80.0
type Nginx struct {
// Image is a container image with Nginx SDK and auto-instrumentation.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines Nginx specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Attrs defines Nginx agent specific attributes. The precedence order is:
// `agent default attributes` > `instrument spec attributes` .
// Attributes are documented at https://github.com/open-telemetry/opentelemetry-cpp-contrib/tree/main/instrumentation/otel-webserver-module
// +optional
Attrs []corev1.EnvVar `json:"attrs,omitempty"`
// Location of Nginx configuration file.
// Needed only if different from default "/etx/nginx/nginx.conf"
// +optional
ConfigFile string `json:"configFile,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
}
Nginx defines Nginx SDK and instrumentation configuration.
func (*Nginx) DeepCopy ¶ added in v0.80.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Nginx.
func (*Nginx) DeepCopyInto ¶ added in v0.80.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeJS ¶
type NodeJS struct {
// Image is a container image with NodeJS SDK and auto-instrumentation.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines nodejs specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
}
NodeJS defines NodeJS SDK and instrumentation configuration.
func (*NodeJS) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeJS.
func (*NodeJS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObservabilitySpec ¶ added in v0.82.0
type ObservabilitySpec struct {
// Metrics defines the metrics configuration for operands.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Metrics Config"
Metrics MetricsConfigSpec `json:"metrics,omitempty"`
}
ObservabilitySpec defines how telemetry data gets handled.
func (*ObservabilitySpec) DeepCopy ¶ added in v0.82.0
func (in *ObservabilitySpec) DeepCopy() *ObservabilitySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilitySpec.
func (*ObservabilitySpec) DeepCopyInto ¶ added in v0.82.0
func (in *ObservabilitySpec) DeepCopyInto(out *ObservabilitySpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpAMPBridge ¶ added in v0.88.0
type OpAMPBridge struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec OpAMPBridgeSpec `json:"spec,omitempty"`
Status OpAMPBridgeStatus `json:"status,omitempty"`
}
OpAMPBridge is the Schema for the opampbridges API.
func (*OpAMPBridge) DeepCopy ¶ added in v0.88.0
func (in *OpAMPBridge) DeepCopy() *OpAMPBridge
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpAMPBridge.
func (*OpAMPBridge) DeepCopyInto ¶ added in v0.88.0
func (in *OpAMPBridge) DeepCopyInto(out *OpAMPBridge)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpAMPBridge) DeepCopyObject ¶ added in v0.88.0
func (in *OpAMPBridge) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OpAMPBridgeCapability ¶ added in v0.88.0
type OpAMPBridgeCapability string
OpAMPBridgeCapability represents capability supported by OpAMP Bridge. +kubebuilder:validation:Enum=AcceptsRemoteConfig;ReportsEffectiveConfig;ReportsOwnTraces;ReportsOwnMetrics;ReportsOwnLogs;AcceptsOpAMPConnectionSettings;AcceptsOtherConnectionSettings;AcceptsRestartCommand;ReportsHealth;ReportsRemoteConfig
const ( OpAMPBridgeCapabilityReportsStatus OpAMPBridgeCapability = "ReportsStatus" OpAMPBridgeCapabilityAcceptsRemoteConfig OpAMPBridgeCapability = "AcceptsRemoteConfig" OpAMPBridgeCapabilityReportsEffectiveConfig OpAMPBridgeCapability = "ReportsEffectiveConfig" OpAMPBridgeCapabilityReportsOwnTraces OpAMPBridgeCapability = "ReportsOwnTraces" OpAMPBridgeCapabilityReportsOwnMetrics OpAMPBridgeCapability = "ReportsOwnMetrics" OpAMPBridgeCapabilityReportsOwnLogs OpAMPBridgeCapability = "ReportsOwnLogs" OpAMPBridgeCapabilityAcceptsOpAMPConnectionSettings OpAMPBridgeCapability = "AcceptsOpAMPConnectionSettings" OpAMPBridgeCapabilityAcceptsOtherConnectionSettings OpAMPBridgeCapability = "AcceptsOtherConnectionSettings" OpAMPBridgeCapabilityAcceptsRestartCommand OpAMPBridgeCapability = "AcceptsRestartCommand" OpAMPBridgeCapabilityReportsHealth OpAMPBridgeCapability = "ReportsHealth" OpAMPBridgeCapabilityReportsRemoteConfig OpAMPBridgeCapability = "ReportsRemoteConfig" )
type OpAMPBridgeList ¶ added in v0.88.0
type OpAMPBridgeList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []OpAMPBridge `json:"items"`
}
OpAMPBridgeList contains a list of OpAMPBridge.
func (*OpAMPBridgeList) DeepCopy ¶ added in v0.88.0
func (in *OpAMPBridgeList) DeepCopy() *OpAMPBridgeList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpAMPBridgeList.
func (*OpAMPBridgeList) DeepCopyInto ¶ added in v0.88.0
func (in *OpAMPBridgeList) DeepCopyInto(out *OpAMPBridgeList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpAMPBridgeList) DeepCopyObject ¶ added in v0.88.0
func (in *OpAMPBridgeList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OpAMPBridgeSpec ¶ added in v0.88.0
type OpAMPBridgeSpec struct {
// OpAMP backend Server endpoint
// +required
Endpoint string `json:"endpoint"`
// Headers is an optional map of headers to use when connecting to the OpAMP Server,
// typically used to set access tokens or other authorization headers.
// +optional
Headers map[string]string `json:"headers,omitempty"`
// Capabilities supported by the OpAMP Bridge
// +required
Capabilities map[OpAMPBridgeCapability]bool `json:"capabilities"`
// ComponentsAllowed is a list of allowed OpenTelemetry components for each pipeline type (receiver, processor, etc.)
// +optional
ComponentsAllowed map[string][]string `json:"componentsAllowed,omitempty"`
// Description allows the customization of the non identifying attributes for the OpAMP Bridge.
// +optional
Description *AgentDescription `json:"description,omitempty"`
// Resources to set on the OpAMPBridge pods.
// +optional
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// NodeSelector to schedule OpAMPBridge pods.
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Replicas is the number of pod instances for the OpAMPBridge.
// +optional
// +kubebuilder:validation:Maximum=1
Replicas *int32 `json:"replicas,omitempty"`
// SecurityContext will be set as the container security context.
// +optional
SecurityContext *v1.SecurityContext `json:"securityContext,omitempty"`
// PodSecurityContext will be set as the pod security context.
// +optional
PodSecurityContext *v1.PodSecurityContext `json:"podSecurityContext,omitempty"`
// PodAnnotations is the set of annotations that will be attached to
// OpAMPBridge pods.
// +optional
PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
// ServiceAccount indicates the name of an existing service account to use with this instance. When set,
// the operator will not automatically create a ServiceAccount for the OpAMPBridge.
// +optional
ServiceAccount string `json:"serviceAccount,omitempty"`
// Image indicates the container image to use for the OpAMPBridge.
// +optional
Image string `json:"image,omitempty"`
// UpgradeStrategy represents how the operator will handle upgrades to the CR when a newer version of the operator is deployed
// +optional
UpgradeStrategy UpgradeStrategy `json:"upgradeStrategy"`
// ImagePullPolicy indicates the pull policy to be used for retrieving the container image (Always, Never, IfNotPresent)
// +optional
ImagePullPolicy v1.PullPolicy `json:"imagePullPolicy,omitempty"`
// VolumeMounts represents the mount points to use in the underlying OpAMPBridge deployment(s)
// +optional
// +listType=atomic
VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`
// Ports allows a set of ports to be exposed by the underlying v1.Service.
// +optional
// +listType=atomic
Ports []v1.ServicePort `json:"ports,omitempty"`
// ENV vars to set on the OpAMPBridge Pods.
// +optional
Env []v1.EnvVar `json:"env,omitempty"`
// List of sources to populate environment variables on the OpAMPBridge Pods.
// +optional
EnvFrom []v1.EnvFromSource `json:"envFrom,omitempty"`
// Toleration to schedule OpAMPBridge pods.
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
// Volumes represents which volumes to use in the underlying OpAMPBridge deployment(s).
// +optional
// +listType=atomic
Volumes []v1.Volume `json:"volumes,omitempty"`
// HostNetwork indicates if the pod should run in the host networking namespace.
// +optional
HostNetwork bool `json:"hostNetwork,omitempty"`
// If specified, indicates the pod's priority.
// If not specified, the pod priority will be default or zero if there is no
// default.
// +optional
PriorityClassName string `json:"priorityClassName,omitempty"`
// If specified, indicates the pod's scheduling constraints
// +optional
Affinity *v1.Affinity `json:"affinity,omitempty"`
// TopologySpreadConstraints embedded kubernetes pod configuration option,
// controls how pods are spread across your cluster among failure-domains
// such as regions, zones, nodes, and other user-defined topology domains
// https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
// +optional
TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
// PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.
PodDNSConfig v1.PodDNSConfig `json:"podDnsConfig,omitempty"`
// IPFamily represents the IP Family (IPv4 or IPv6). This type is used
// to express the family of an IP expressed by a type (e.g. service.spec.ipFamilies).
// +optional
IpFamilies []v1.IPFamily `json:"ipFamilies,omitempty"`
// IPFamilyPolicy represents the dual-stack-ness requested or required by a Service
IpFamilyPolicy *v1.IPFamilyPolicy `json:"ipFamilyPolicy,omitempty"`
}
OpAMPBridgeSpec defines the desired state of OpAMPBridge.
func (*OpAMPBridgeSpec) DeepCopy ¶ added in v0.88.0
func (in *OpAMPBridgeSpec) DeepCopy() *OpAMPBridgeSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpAMPBridgeSpec.
func (*OpAMPBridgeSpec) DeepCopyInto ¶ added in v0.88.0
func (in *OpAMPBridgeSpec) DeepCopyInto(out *OpAMPBridgeSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpAMPBridgeStatus ¶ added in v0.88.0
type OpAMPBridgeStatus struct {
// Version of the managed OpAMP Bridge (operand)
// +optional
Version string `json:"version,omitempty"`
}
OpAMPBridgeStatus defines the observed state of OpAMPBridge.
func (*OpAMPBridgeStatus) DeepCopy ¶ added in v0.88.0
func (in *OpAMPBridgeStatus) DeepCopy() *OpAMPBridgeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpAMPBridgeStatus.
func (*OpAMPBridgeStatus) DeepCopyInto ¶ added in v0.88.0
func (in *OpAMPBridgeStatus) DeepCopyInto(out *OpAMPBridgeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpAMPBridgeWebhook ¶ added in v0.88.0
type OpAMPBridgeWebhook struct {
// contains filtered or unexported fields
}
func (*OpAMPBridgeWebhook) ValidateCreate ¶ added in v0.88.0
func (*OpAMPBridgeWebhook) ValidateDelete ¶ added in v0.88.0
func (*OpAMPBridgeWebhook) ValidateUpdate ¶ added in v0.88.0
type OpenShiftRoute ¶ added in v0.67.0
type OpenShiftRoute struct {
// Termination indicates termination type. By default "edge" is used.
Termination TLSRouteTerminationType `json:"termination,omitempty"`
}
OpenShiftRoute defines openshift route specific settings.
func (*OpenShiftRoute) DeepCopy ¶ added in v0.67.0
func (in *OpenShiftRoute) DeepCopy() *OpenShiftRoute
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenShiftRoute.
func (*OpenShiftRoute) DeepCopyInto ¶ added in v0.67.0
func (in *OpenShiftRoute) DeepCopyInto(out *OpenShiftRoute)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryCollector ¶
type OpenTelemetryCollector struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec OpenTelemetryCollectorSpec `json:"spec,omitempty"`
Status OpenTelemetryCollectorStatus `json:"status,omitempty"`
}
OpenTelemetryCollector is the Schema for the opentelemetrycollectors API.
func (*OpenTelemetryCollector) ConvertFrom ¶ added in v0.96.0
func (dst *OpenTelemetryCollector) ConvertFrom(srcRaw conversion.Hub) error
func (*OpenTelemetryCollector) ConvertTo ¶ added in v0.96.0
func (src *OpenTelemetryCollector) ConvertTo(dstRaw conversion.Hub) error
func (*OpenTelemetryCollector) DeepCopy ¶
func (in *OpenTelemetryCollector) DeepCopy() *OpenTelemetryCollector
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryCollector.
func (*OpenTelemetryCollector) DeepCopyInto ¶
func (in *OpenTelemetryCollector) DeepCopyInto(out *OpenTelemetryCollector)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpenTelemetryCollector) DeepCopyObject ¶
func (in *OpenTelemetryCollector) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OpenTelemetryCollectorList ¶
type OpenTelemetryCollectorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []OpenTelemetryCollector `json:"items"`
}
OpenTelemetryCollectorList contains a list of OpenTelemetryCollector.
func (*OpenTelemetryCollectorList) DeepCopy ¶
func (in *OpenTelemetryCollectorList) DeepCopy() *OpenTelemetryCollectorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryCollectorList.
func (*OpenTelemetryCollectorList) DeepCopyInto ¶
func (in *OpenTelemetryCollectorList) DeepCopyInto(out *OpenTelemetryCollectorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*OpenTelemetryCollectorList) DeepCopyObject ¶
func (in *OpenTelemetryCollectorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type OpenTelemetryCollectorSpec ¶
type OpenTelemetryCollectorSpec struct {
// ManagementState defines if the CR should be managed by the operator or not.
// Default is managed.
//
// +required
// +kubebuilder:validation:Required
// +kubebuilder:default:=managed
ManagementState ManagementStateType `json:"managementState,omitempty"`
// Resources to set on the OpenTelemetry Collector pods.
// +optional
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// NodeSelector to schedule OpenTelemetry Collector pods.
// This is only relevant to daemonset, statefulset, and deployment mode
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Args is the set of arguments to pass to the OpenTelemetry Collector binary
// +optional
Args map[string]string `json:"args,omitempty"`
// Replicas is the number of pod instances for the underlying OpenTelemetry Collector. Set this if you are not using autoscaling
// +optional
// +kubebuilder:default:=1
Replicas *int32 `json:"replicas,omitempty"`
// MinReplicas sets a lower bound to the autoscaling feature. Set this if you are using autoscaling. It must be at least 1
// +optional
// Deprecated: use "OpenTelemetryCollector.Spec.Autoscaler.MinReplicas" instead.
MinReplicas *int32 `json:"minReplicas,omitempty"`
// MaxReplicas sets an upper bound to the autoscaling feature. If MaxReplicas is set autoscaling is enabled.
// +optional
// Deprecated: use "OpenTelemetryCollector.Spec.Autoscaler.MaxReplicas" instead.
MaxReplicas *int32 `json:"maxReplicas,omitempty"`
// Autoscaler specifies the pod autoscaling configuration to use
// for the OpenTelemetryCollector workload.
//
// +optional
Autoscaler *AutoscalerSpec `json:"autoscaler,omitempty"`
// PodDisruptionBudget specifies the pod disruption budget configuration to use
// for the OpenTelemetryCollector workload.
//
// +optional
PodDisruptionBudget *PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// SecurityContext configures the container security context for
// the opentelemetry-collector container.
//
// In deployment, daemonset, or statefulset mode, this controls
// the security context settings for the primary application
// container.
//
// In sidecar mode, this controls the security context for the
// injected sidecar container.
//
// +optional
SecurityContext *v1.SecurityContext `json:"securityContext,omitempty"`
// PodSecurityContext configures the pod security context for the
// opentelemetry-collector pod, when running as a deployment, daemonset,
// or statefulset.
//
// In sidecar mode, the opentelemetry-operator will ignore this setting.
//
// +optional
PodSecurityContext *v1.PodSecurityContext `json:"podSecurityContext,omitempty"`
// PodAnnotations is the set of annotations that will be attached to
// Collector and Target Allocator pods.
// +optional
PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
// TargetAllocator indicates a value which determines whether to spawn a target allocation resource or not.
// +optional
TargetAllocator OpenTelemetryTargetAllocator `json:"targetAllocator,omitempty"`
// Mode represents how the collector should be deployed (deployment, daemonset, statefulset or sidecar)
// +optional
Mode Mode `json:"mode,omitempty"`
// ServiceAccount indicates the name of an existing service account to use with this instance. When set,
// the operator will not automatically create a ServiceAccount for the collector.
// +optional
ServiceAccount string `json:"serviceAccount,omitempty"`
// Image indicates the container image to use for the OpenTelemetry Collector.
// +optional
Image string `json:"image,omitempty"`
// UpgradeStrategy represents how the operator will handle upgrades to the CR when a newer version of the operator is deployed
// +optional
UpgradeStrategy UpgradeStrategy `json:"upgradeStrategy"`
// ImagePullPolicy indicates the pull policy to be used for retrieving the container image (Always, Never, IfNotPresent)
// +optional
ImagePullPolicy v1.PullPolicy `json:"imagePullPolicy,omitempty"`
// Config is the raw YAML to be used as the collector's configuration. Refer to the OpenTelemetry Collector documentation for details.
// +required
Config string `json:"config,omitempty"`
// VolumeMounts represents the mount points to use in the underlying collector deployment(s)
// +optional
// +listType=atomic
VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`
// Ports allows a set of ports to be exposed by the underlying v1.Service. By default, the operator
// will attempt to infer the required ports by parsing the .Spec.Config property but this property can be
// used to open additional ports that can't be inferred by the operator, like for custom receivers.
// +optional
// +listType=atomic
Ports []PortsSpec `json:"ports,omitempty"`
// ENV vars to set on the OpenTelemetry Collector's Pods. These can then in certain cases be
// consumed in the config file for the Collector.
// +optional
Env []v1.EnvVar `json:"env,omitempty"`
// List of sources to populate environment variables on the OpenTelemetry Collector's Pods.
// These can then in certain cases be consumed in the config file for the Collector.
// +optional
EnvFrom []v1.EnvFromSource `json:"envFrom,omitempty"`
// VolumeClaimTemplates will provide stable storage using PersistentVolumes. Only available when the mode=statefulset.
// +optional
// +listType=atomic
VolumeClaimTemplates []v1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"`
// Toleration to schedule OpenTelemetry Collector pods.
// This is only relevant to daemonset, statefulset, and deployment mode
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
// Volumes represents which volumes to use in the underlying collector deployment(s).
// +optional
// +listType=atomic
Volumes []v1.Volume `json:"volumes,omitempty"`
// Ingress is used to specify how OpenTelemetry Collector is exposed. This
// functionality is only available if one of the valid modes is set.
// Valid modes are: deployment, daemonset and statefulset.
// +optional
Ingress Ingress `json:"ingress,omitempty"`
// HostNetwork indicates if the pod should run in the host networking namespace.
// +optional
HostNetwork bool `json:"hostNetwork,omitempty"`
// +optional
ShareProcessNamespace bool `json:"shareProcessNamespace,omitempty"`
// If specified, indicates the pod's priority.
// If not specified, the pod priority will be default or zero if there is no
// default.
// +optional
PriorityClassName string `json:"priorityClassName,omitempty"`
// If specified, indicates the pod's scheduling constraints
// +optional
Affinity *v1.Affinity `json:"affinity,omitempty"`
// Actions that the management system should take in response to container lifecycle events. Cannot be updated.
// +optional
Lifecycle *v1.Lifecycle `json:"lifecycle,omitempty"`
// Duration in seconds the pod needs to terminate gracefully upon probe failure.
// +optional
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
// Liveness config for the OpenTelemetry Collector except the probe handler which is auto generated from the health extension of the collector.
// It is only effective when healthcheckextension is configured in the OpenTelemetry Collector pipeline.
// +optional
LivenessProbe *Probe `json:"livenessProbe,omitempty"`
// InitContainers allows injecting initContainers to the Collector's pod definition.
// These init containers can be used to fetch secrets for injection into the
// configuration from external sources, run added checks, etc. Any errors during the execution of
// an initContainer will lead to a restart of the Pod. More info:
// https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
// +optional
InitContainers []v1.Container `json:"initContainers,omitempty"`
// ServiceName is the name of the Service to be used.
// If not specified, it will default to "<name>-headless".
// +optional
ServiceName string `json:"serviceName,omitempty"`
// TrafficDistribution specifies how traffic to this service is routed.
// https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
// This is only applicable to Service resources.
// +optional
TrafficDistribution *string `json:"trafficDistribution,omitempty"`
// AdditionalContainers allows injecting additional containers into the Collector's pod definition.
// These sidecar containers can be used for authentication proxies, log shipping sidecars, agents for shipping
// metrics to their cloud, or in general sidecars that do not support automatic injection. This option only
// applies to Deployment, DaemonSet, and StatefulSet deployment modes of the collector. It does not apply to the sidecar
// deployment mode. More info about sidecars:
// https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/
//
// Container names managed by the operator:
// * `otc-container`
//
// Overriding containers managed by the operator is outside the scope of what the maintainers will support and by
// doing so, you wil accept the risk of it breaking things.
//
// +optional
AdditionalContainers []v1.Container `json:"additionalContainers,omitempty"`
// ObservabilitySpec defines how telemetry data gets handled.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Observability"
Observability ObservabilitySpec `json:"observability,omitempty"`
// TopologySpreadConstraints embedded kubernetes pod configuration option,
// controls how pods are spread across your cluster among failure-domains
// such as regions, zones, nodes, and other user-defined topology domains
// https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
// This is only relevant to statefulset, and deployment mode
// +optional
TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
// ConfigMaps is a list of ConfigMaps in the same namespace as the OpenTelemetryCollector
// object, which shall be mounted into the Collector Pods.
// Each ConfigMap will be added to the Collector's Deployments as a volume named `configmap-<configmap-name>`.
ConfigMaps []ConfigMapsSpec `json:"configmaps,omitempty"`
// UpdateStrategy represents the strategy the operator will take replacing existing DaemonSet pods with new pods
// https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/#DaemonSetSpec
// This is only applicable to Daemonset mode.
// +optional
UpdateStrategy appsv1.DaemonSetUpdateStrategy `json:"updateStrategy,omitempty"`
// UpdateStrategy represents the strategy the operator will take replacing existing Deployment pods with new pods
// https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/#DeploymentSpec
// This is only applicable to Deployment mode.
// +optional
DeploymentUpdateStrategy appsv1.DeploymentStrategy `json:"deploymentUpdateStrategy,omitempty"`
}
OpenTelemetryCollectorSpec defines the desired state of OpenTelemetryCollector.
func (*OpenTelemetryCollectorSpec) DeepCopy ¶
func (in *OpenTelemetryCollectorSpec) DeepCopy() *OpenTelemetryCollectorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryCollectorSpec.
func (*OpenTelemetryCollectorSpec) DeepCopyInto ¶
func (in *OpenTelemetryCollectorSpec) DeepCopyInto(out *OpenTelemetryCollectorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryCollectorStatus ¶
type OpenTelemetryCollectorStatus struct {
// Scale is the OpenTelemetryCollector's scale subresource status.
// +optional
Scale ScaleSubresourceStatus `json:"scale,omitempty"`
// Version of the managed OpenTelemetry Collector (operand)
// +optional
Version string `json:"version,omitempty"`
// Image indicates the container image to use for the OpenTelemetry Collector.
// +optional
Image string `json:"image,omitempty"`
// Messages about actions performed by the operator on this resource.
// +optional
// +listType=atomic
// Deprecated: use Kubernetes events instead.
Messages []string `json:"messages,omitempty"`
// Replicas is currently not being set and might be removed in the next version.
// +optional
// Deprecated: use "OpenTelemetryCollector.Status.Scale.Replicas" instead.
Replicas int32 `json:"replicas,omitempty"`
}
OpenTelemetryCollectorStatus defines the observed state of OpenTelemetryCollector.
func (*OpenTelemetryCollectorStatus) DeepCopy ¶
func (in *OpenTelemetryCollectorStatus) DeepCopy() *OpenTelemetryCollectorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryCollectorStatus.
func (*OpenTelemetryCollectorStatus) DeepCopyInto ¶
func (in *OpenTelemetryCollectorStatus) DeepCopyInto(out *OpenTelemetryCollectorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryTargetAllocator ¶
type OpenTelemetryTargetAllocator struct {
// Replicas is the number of pod instances for the underlying TargetAllocator. This should only be set to a value
// other than 1 if a strategy that allows for high availability is chosen. Currently, the only allocation strategy
// that can be run in a high availability mode is consistent-hashing.
// +optional
Replicas *int32 `json:"replicas,omitempty"`
// NodeSelector to schedule OpenTelemetry TargetAllocator pods.
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// Resources to set on the OpenTelemetryTargetAllocator containers.
// +optional
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// AllocationStrategy determines which strategy the target allocator should use for allocation.
// The current options are least-weighted, consistent-hashing and per-node. The default is
// consistent-hashing.
// WARNING: The per-node strategy currently ignores targets without a Node, like control plane components.
// +optional
// +kubebuilder:default:=consistent-hashing
AllocationStrategy OpenTelemetryTargetAllocatorAllocationStrategy `json:"allocationStrategy,omitempty"`
// FilterStrategy determines how to filter targets before allocating them among the collectors.
// The only current option is relabel-config (drops targets based on prom relabel_config).
// The default is relabel-config.
// +optional
// +kubebuilder:default:=relabel-config
FilterStrategy string `json:"filterStrategy,omitempty"`
// ServiceAccount indicates the name of an existing service account to use with this instance. When set,
// the operator will not automatically create a ServiceAccount for the TargetAllocator.
// +optional
ServiceAccount string `json:"serviceAccount,omitempty"`
// Image indicates the container image to use for the OpenTelemetry TargetAllocator.
// +optional
Image string `json:"image,omitempty"`
// Enabled indicates whether to use a target allocation mechanism for Prometheus targets or not.
// +optional
Enabled bool `json:"enabled,omitempty"`
// If specified, indicates the pod's scheduling constraints
// +optional
Affinity *v1.Affinity `json:"affinity,omitempty"`
// PrometheusCR defines the configuration for the retrieval of PrometheusOperator CRDs ( servicemonitor.monitoring.coreos.com/v1 and podmonitor.monitoring.coreos.com/v1 ) retrieval.
// All CR instances which the ServiceAccount has access to will be retrieved. This includes other namespaces.
// +optional
PrometheusCR OpenTelemetryTargetAllocatorPrometheusCR `json:"prometheusCR,omitempty"`
// SecurityContext configures the container security context for
// the targetallocator.
// +optional
SecurityContext *v1.SecurityContext `json:"securityContext,omitempty"`
// PodSecurityContext configures the pod security context for the
// targetallocator.
// +optional
PodSecurityContext *v1.PodSecurityContext `json:"podSecurityContext,omitempty"`
// TopologySpreadConstraints embedded kubernetes pod configuration option,
// controls how pods are spread across your cluster among failure-domains
// such as regions, zones, nodes, and other user-defined topology domains
// https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
// +optional
TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
// Toleration embedded kubernetes pod configuration option,
// controls how pods can be scheduled with matching taints
// +optional
Tolerations []v1.Toleration `json:"tolerations,omitempty"`
// ENV vars to set on the OpenTelemetry TargetAllocator's Pods. These can then in certain cases be
// consumed in the config file for the TargetAllocator.
// +optional
Env []v1.EnvVar `json:"env,omitempty"`
// ObservabilitySpec defines how telemetry data gets handled.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Observability"
Observability ObservabilitySpec `json:"observability,omitempty"`
// PodDisruptionBudget specifies the pod disruption budget configuration to use
// for the target allocator workload.
//
// +optional
PodDisruptionBudget *PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
}
OpenTelemetryTargetAllocator defines the configurations for the Prometheus target allocator.
func (*OpenTelemetryTargetAllocator) DeepCopy ¶
func (in *OpenTelemetryTargetAllocator) DeepCopy() *OpenTelemetryTargetAllocator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryTargetAllocator.
func (*OpenTelemetryTargetAllocator) DeepCopyInto ¶
func (in *OpenTelemetryTargetAllocator) DeepCopyInto(out *OpenTelemetryTargetAllocator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type OpenTelemetryTargetAllocatorAllocationStrategy ¶ added in v0.64.1
type OpenTelemetryTargetAllocatorAllocationStrategy string
OpenTelemetryTargetAllocatorAllocationStrategy represent which strategy to distribute target to each collector +kubebuilder:validation:Enum=least-weighted;consistent-hashing;per-node
const ( // OpenTelemetryTargetAllocatorAllocationStrategyLeastWeighted targets will be distributed to collector with fewer targets currently assigned. OpenTelemetryTargetAllocatorAllocationStrategyLeastWeighted OpenTelemetryTargetAllocatorAllocationStrategy = "least-weighted" // OpenTelemetryTargetAllocatorAllocationStrategyConsistentHashing targets will be consistently added to collectors, which allows a high-availability setup. OpenTelemetryTargetAllocatorAllocationStrategyConsistentHashing OpenTelemetryTargetAllocatorAllocationStrategy = "consistent-hashing" // OpenTelemetryTargetAllocatorAllocationStrategyPerNode targets will be assigned to the collector on the node they reside on (use only with daemon set). OpenTelemetryTargetAllocatorAllocationStrategyPerNode OpenTelemetryTargetAllocatorAllocationStrategy = "per-node" )
type OpenTelemetryTargetAllocatorPrometheusCR ¶ added in v0.50.0
type OpenTelemetryTargetAllocatorPrometheusCR struct {
// Enabled indicates whether to use a PrometheusOperator custom resources as targets or not.
// +optional
Enabled bool `json:"enabled,omitempty"`
// Interval between consecutive scrapes. Equivalent to the same setting on the Prometheus CRD.
//
// Default: "30s"
// +kubebuilder:default:="30s"
// +kubebuilder:validation:Format:=duration
ScrapeInterval *metav1.Duration `json:"scrapeInterval,omitempty"`
// PodMonitors to be selected for target discovery.
// This is a map of {key,value} pairs. Each {key,value} in the map is going to exactly match a label in a
// PodMonitor's meta labels. The requirements are ANDed.
// Empty or nil map matches all pod monitors.
// +optional
PodMonitorSelector map[string]string `json:"podMonitorSelector,omitempty"`
// ServiceMonitors to be selected for target discovery.
// This is a map of {key,value} pairs. Each {key,value} in the map is going to exactly match a label in a
// ServiceMonitor's meta labels. The requirements are ANDed.
// Empty or nil map matches all service monitors.
// +optional
ServiceMonitorSelector map[string]string `json:"serviceMonitorSelector,omitempty"`
}
func (*OpenTelemetryTargetAllocatorPrometheusCR) DeepCopy ¶ added in v0.50.0
func (in *OpenTelemetryTargetAllocatorPrometheusCR) DeepCopy() *OpenTelemetryTargetAllocatorPrometheusCR
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryTargetAllocatorPrometheusCR.
func (*OpenTelemetryTargetAllocatorPrometheusCR) DeepCopyInto ¶ added in v0.50.0
func (in *OpenTelemetryTargetAllocatorPrometheusCR) DeepCopyInto(out *OpenTelemetryTargetAllocatorPrometheusCR)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDisruptionBudgetSpec ¶ added in v0.86.0
type PodDisruptionBudgetSpec struct {
// An eviction is allowed if at least "minAvailable" pods selected by
// "selector" will still be available after the eviction, i.e. even in the
// absence of the evicted pod. So for example you can prevent all voluntary
// evictions by specifying "100%".
// +optional
MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"`
// "selector" are unavailable after the eviction, i.e. even in absence of
// the evicted pod. For example, one can prevent all voluntary evictions
// by specifying 0. This is a mutually exclusive setting with "minAvailable".
// +optional
MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
}
PodDisruptionBudgetSpec defines the OpenTelemetryCollector's pod disruption budget specification.
func (*PodDisruptionBudgetSpec) DeepCopy ¶ added in v0.86.0
func (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.
func (*PodDisruptionBudgetSpec) DeepCopyInto ¶ added in v0.86.0
func (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PortsSpec ¶ added in v0.98.0
type PortsSpec struct {
// Allows defining which port to bind to the host in the Container.
// +optional
HostPort int32 `json:"hostPort,omitempty"`
// Maintain previous fields in new struct
v1.ServicePort `json:",inline"`
}
PortsSpec defines the OpenTelemetryCollector's container/service ports additional specifications.
func (*PortsSpec) DeepCopy ¶ added in v0.98.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortsSpec.
func (*PortsSpec) DeepCopyInto ¶ added in v0.98.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Probe ¶ added in v0.76.1
type Probe struct {
// Number of seconds after the container has started before liveness probes are initiated.
// Defaults to 0 seconds. Minimum value is 0.
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
// +optional
InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`
// Number of seconds after which the probe times out.
// Defaults to 1 second. Minimum value is 1.
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
// +optional
TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`
// How often (in seconds) to perform the probe.
// Default to 10 seconds. Minimum value is 1.
// +optional
PeriodSeconds *int32 `json:"periodSeconds,omitempty"`
// Minimum consecutive successes for the probe to be considered successful after having failed.
// Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
// +optional
SuccessThreshold *int32 `json:"successThreshold,omitempty"`
// Minimum consecutive failures for the probe to be considered failed after having succeeded.
// Defaults to 3. Minimum value is 1.
// +optional
FailureThreshold *int32 `json:"failureThreshold,omitempty"`
// Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
// The grace period is the duration in seconds after the processes running in the pod are sent
// a termination signal and the time when the processes are forcibly halted with a kill signal.
// Set this value longer than the expected cleanup time for your process.
// If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
// value overrides the value provided by the pod spec.
// Value must be non-negative integer. The value zero indicates stop immediately via
// the kill signal (no opportunity to shut down).
// This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
// Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
// +optional
TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
}
Probe defines the OpenTelemetry's pod probe config. Only Liveness probe is supported currently.
func (*Probe) DeepCopy ¶ added in v0.76.1
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
func (*Probe) DeepCopyInto ¶ added in v0.76.1
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Propagator ¶
type Propagator string
Propagator represents the propagation type. +kubebuilder:validation:Enum=tracecontext;baggage;b3;b3multi;jaeger;xray;ottrace;none
const ( // TraceContext represents W3C Trace Context. TraceContext Propagator = "tracecontext" // Baggage represents W3C Baggage. Baggage Propagator = "baggage" // B3 represents B3 Single. B3 Propagator = "b3" // B3Multi represents B3 Multi. B3Multi Propagator = "b3multi" // Jaeger represents Jaeger. Jaeger Propagator = "jaeger" // XRay represents AWS X-Ray. XRay Propagator = "xray" // OTTrace represents OT Trace. OTTrace Propagator = "ottrace" // None represents automatically configured propagator. None Propagator = "none" )
type Python ¶
type Python struct {
// Image is a container image with Python SDK and auto-instrumentation.
// +optional
Image string `json:"image,omitempty"`
// VolumeClaimTemplate defines an ephemeral volume used for auto-instrumentation.
// If omitted, an emptyDir is used with size limit VolumeSizeLimit
VolumeClaimTemplate corev1.PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty"`
// VolumeSizeLimit defines size limit for volume used for auto-instrumentation.
// The default size is 200Mi.
VolumeSizeLimit *resource.Quantity `json:"volumeLimitSize,omitempty"`
// Env defines python specific env vars. There are four layers for env vars' definitions and
// the precedence order is: `original container env vars` > `language specific env vars` > `common env vars` > `instrument spec configs' vars`.
// If the former var had been defined, then the other vars would be ignored.
// +optional
Env []corev1.EnvVar `json:"env,omitempty"`
// Resources describes the compute resource requirements.
// +optional
Resources corev1.ResourceRequirements `json:"resourceRequirements,omitempty"`
}
Python defines Python SDK and instrumentation configuration.
func (*Python) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Python.
func (*Python) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Resource ¶
type Resource struct {
// Attributes defines attributes that are added to the resource.
// For example environment: dev
// +optional
Attributes map[string]string `json:"resourceAttributes,omitempty"`
// AddK8sUIDAttributes defines whether K8s UID attributes should be collected (e.g. k8s.deployment.uid).
// +optional
AddK8sUIDAttributes bool `json:"addK8sUIDAttributes,omitempty"`
}
Resource defines the configuration for the resource attributes, as defined by the OpenTelemetry specification. See also: https://github.com/open-telemetry/opentelemetry-specification/blob/v1.8.0/specification/overview.md#resources
func (*Resource) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (*Resource) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Sampler ¶
type Sampler struct {
// Type defines sampler type.
// The value will be set in the OTEL_TRACES_SAMPLER env var.
// The value can be for instance parentbased_always_on, parentbased_always_off, parentbased_traceidratio...
// +optional
Type SamplerType `json:"type,omitempty"`
// Argument defines sampler argument.
// The value depends on the sampler type.
// For instance for parentbased_traceidratio sampler type it is a number in range [0..1] e.g. 0.25.
// The value will be set in the OTEL_TRACES_SAMPLER_ARG env var.
// +optional
Argument string `json:"argument,omitempty"`
}
Sampler defines sampling configuration.
func (*Sampler) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Sampler.
func (*Sampler) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SamplerType ¶
type SamplerType string
SamplerType represents sampler type. +kubebuilder:validation:Enum=always_on;always_off;traceidratio;parentbased_always_on;parentbased_always_off;parentbased_traceidratio;jaeger_remote;xray
const ( // AlwaysOn represents AlwaysOnSampler. AlwaysOn SamplerType = "always_on" // AlwaysOff represents AlwaysOffSampler. AlwaysOff SamplerType = "always_off" // TraceIDRatio represents TraceIdRatioBased. TraceIDRatio SamplerType = "traceidratio" // ParentBasedAlwaysOn represents ParentBased(root=AlwaysOnSampler). ParentBasedAlwaysOn SamplerType = "parentbased_always_on" // ParentBasedAlwaysOff represents ParentBased(root=AlwaysOffSampler). ParentBasedAlwaysOff SamplerType = "parentbased_always_off" // ParentBasedTraceIDRatio represents ParentBased(root=TraceIdRatioBased). ParentBasedTraceIDRatio SamplerType = "parentbased_traceidratio" // JaegerRemote represents JaegerRemoteSampler. JaegerRemote SamplerType = "jaeger_remote" // ParentBasedJaegerRemote represents ParentBased(root=JaegerRemoteSampler). ParentBasedJaegerRemote SamplerType = "parentbased_jaeger_remote" // XRay represents AWS X-Ray Centralized Sampling. XRaySampler SamplerType = "xray" )
type ScaleSubresourceStatus ¶ added in v0.49.0
type ScaleSubresourceStatus struct {
// The selector used to match the OpenTelemetryCollector's
// deployment or statefulSet pods.
// +optional
Selector string `json:"selector,omitempty"`
// The total number non-terminated pods targeted by this
// OpenTelemetryCollector's deployment or statefulSet.
// +optional
Replicas int32 `json:"replicas,omitempty"`
// StatusReplicas is the number of pods targeted by this OpenTelemetryCollector's with a Ready Condition /
// Total number of non-terminated pods targeted by this OpenTelemetryCollector's (their labels match the selector).
// Deployment, Daemonset, StatefulSet.
// +optional
StatusReplicas string `json:"statusReplicas,omitempty"`
}
ScaleSubresourceStatus defines the observed state of the OpenTelemetryCollector's scale subresource.
func (*ScaleSubresourceStatus) DeepCopy ¶ added in v0.49.0
func (in *ScaleSubresourceStatus) DeepCopy() *ScaleSubresourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSubresourceStatus.
func (*ScaleSubresourceStatus) DeepCopyInto ¶ added in v0.49.0
func (in *ScaleSubresourceStatus) DeepCopyInto(out *ScaleSubresourceStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLS ¶ added in v0.111.0
type TLS struct {
// SecretName defines secret name that will be used to configure TLS on the exporter.
// It is user responsibility to create the secret in the namespace of the workload.
// The secret must contain client certificate (Cert) and private key (Key).
// The CA certificate might be defined in the secret or in the config map.
SecretName string `json:"secretName,omitempty"`
// ConfigMapName defines configmap name with CA certificate. If it is not defined CA certificate will be
// used from the secret defined in SecretName.
ConfigMapName string `json:"configMapName,omitempty"`
// CA defines the key of certificate (e.g. ca.crt) in the configmap map, secret or absolute path to a certificate.
// The absolute path can be used when certificate is already present on the workload filesystem e.g.
// /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
CA string `json:"ca_file,omitempty"`
// Cert defines the key (e.g. tls.crt) of the client certificate in the secret or absolute path to a certificate.
// The absolute path can be used when certificate is already present on the workload filesystem.
Cert string `json:"cert_file,omitempty"`
// Key defines a key (e.g. tls.key) of the private key in the secret or absolute path to a certificate.
// The absolute path can be used when certificate is already present on the workload filesystem.
Key string `json:"key_file,omitempty"`
}
TLS defines TLS configuration for exporter.
func (*TLS) DeepCopy ¶ added in v0.111.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLS.
func (*TLS) DeepCopyInto ¶ added in v0.111.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSRouteTerminationType ¶ added in v0.67.0
type TLSRouteTerminationType string
TLSRouteTerminationType is used to indicate which tls settings should be used. +kubebuilder:validation:Enum=insecure;edge;passthrough;reencrypt
const ( // TLSRouteTerminationTypeInsecure indicates that insecure connections are allowed. TLSRouteTerminationTypeInsecure TLSRouteTerminationType = "insecure" // TLSRouteTerminationTypeEdge indicates that encryption should be terminated // at the edge router. TLSRouteTerminationTypeEdge TLSRouteTerminationType = "edge" // TLSRouteTerminationTypePassthrough indicates that the destination service is // responsible for decrypting traffic. TLSRouteTerminationTypePassthrough TLSRouteTerminationType = "passthrough" // TLSRouteTerminationTypeReencrypt indicates that traffic will be decrypted on the edge // and re-encrypt using a new certificate. TLSRouteTerminationTypeReencrypt TLSRouteTerminationType = "reencrypt" )
type TargetAllocator ¶ added in v0.101.0
type TargetAllocator struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TargetAllocatorSpec `json:"spec,omitempty"`
Status TargetAllocatorStatus `json:"status,omitempty"`
}
TargetAllocator is the Schema for the targetallocators API.
func (*TargetAllocator) DeepCopy ¶ added in v0.101.0
func (in *TargetAllocator) DeepCopy() *TargetAllocator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocator.
func (*TargetAllocator) DeepCopyInto ¶ added in v0.101.0
func (in *TargetAllocator) DeepCopyInto(out *TargetAllocator)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TargetAllocator) DeepCopyObject ¶ added in v0.101.0
func (in *TargetAllocator) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TargetAllocatorList ¶ added in v0.101.0
type TargetAllocatorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []TargetAllocator `json:"items"`
}
TargetAllocatorList contains a list of TargetAllocator.
func (*TargetAllocatorList) DeepCopy ¶ added in v0.101.0
func (in *TargetAllocatorList) DeepCopy() *TargetAllocatorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorList.
func (*TargetAllocatorList) DeepCopyInto ¶ added in v0.101.0
func (in *TargetAllocatorList) DeepCopyInto(out *TargetAllocatorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TargetAllocatorList) DeepCopyObject ¶ added in v0.101.0
func (in *TargetAllocatorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TargetAllocatorSpec ¶ added in v0.101.0
type TargetAllocatorSpec struct {
// Common defines fields that are common to all OpenTelemetry CRD workloads.
v1beta1.OpenTelemetryCommonFields `json:",inline"`
// AllocationStrategy determines which strategy the target allocator should use for allocation.
// The current options are least-weighted, consistent-hashing and per-node. The default is
// consistent-hashing.
// WARNING: The per-node strategy currently ignores targets without a Node, like control plane components.
// +optional
// +kubebuilder:default:=consistent-hashing
AllocationStrategy v1beta1.TargetAllocatorAllocationStrategy `json:"allocationStrategy,omitempty"`
// FilterStrategy determines how to filter targets before allocating them among the collectors.
// The only current option is relabel-config (drops targets based on prom relabel_config).
// The default is relabel-config.
// +optional
// +kubebuilder:default:=relabel-config
FilterStrategy v1beta1.TargetAllocatorFilterStrategy `json:"filterStrategy,omitempty"`
// GlobalConfig configures the global configuration for Prometheus
// For more info, see https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file.
GlobalConfig v1beta1.AnyConfig `json:"global,omitempty"`
// ScrapeConfigs define static Prometheus scrape configurations for the target allocator.
// To use dynamic configurations from ServiceMonitors and PodMonitors, see the PrometheusCR section.
// For the exact format, see https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config.
// +optional
// +listType=atomic
// +kubebuilder:pruning:PreserveUnknownFields
ScrapeConfigs []v1beta1.AnyConfig `json:"scrapeConfigs,omitempty"`
// PrometheusCR defines the configuration for the retrieval of PrometheusOperator CRDs ( servicemonitor.monitoring.coreos.com/v1 and podmonitor.monitoring.coreos.com/v1 ).
// +optional
PrometheusCR v1beta1.TargetAllocatorPrometheusCR `json:"prometheusCR,omitempty"`
// ObservabilitySpec defines how telemetry data gets handled.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Observability"
Observability v1beta1.ObservabilitySpec `json:"observability,omitempty"`
// NetworkPolicy defines the network policy to be applied to the Target Allocator pods.
// +optional
NetworkPolicy v1beta1.NetworkPolicy `json:"networkPolicy,omitempty"`
// CollectorNotReadyGracePeriod defines the grace period after which a TargetAllocator stops considering a collector is target assignable.
// The default is 30s, which means that if a collector becomes not Ready, the target allocator will wait for 30 seconds before reassigning its targets. The assumption is that the state is temporary, and an expensive target reallocation should be avoided if possible.
//
// +optional
// +kubebuilder:default:="30s"
// +kubebuilder:validation:Format:=duration
CollectorNotReadyGracePeriod *metav1.Duration `json:"collectorNotReadyGracePeriod,omitempty"`
}
TargetAllocatorSpec defines the desired state of TargetAllocator.
func (*TargetAllocatorSpec) DeepCopy ¶ added in v0.101.0
func (in *TargetAllocatorSpec) DeepCopy() *TargetAllocatorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorSpec.
func (*TargetAllocatorSpec) DeepCopyInto ¶ added in v0.101.0
func (in *TargetAllocatorSpec) DeepCopyInto(out *TargetAllocatorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetAllocatorStatus ¶ added in v0.101.0
type TargetAllocatorStatus struct {
// Version of the managed Target Allocator (operand)
// +optional
Version string `json:"version,omitempty"`
// Image indicates the container image to use for the Target Allocator.
// +optional
Image string `json:"image,omitempty"`
}
TargetAllocatorStatus defines the observed state of Target Allocator.
func (*TargetAllocatorStatus) DeepCopy ¶ added in v0.101.0
func (in *TargetAllocatorStatus) DeepCopy() *TargetAllocatorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorStatus.
func (*TargetAllocatorStatus) DeepCopyInto ¶ added in v0.101.0
func (in *TargetAllocatorStatus) DeepCopyInto(out *TargetAllocatorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetAllocatorWebhook ¶ added in v0.104.0
type TargetAllocatorWebhook struct {
// contains filtered or unexported fields
}
func (TargetAllocatorWebhook) ValidateCreate ¶ added in v0.104.0
func (TargetAllocatorWebhook) ValidateDelete ¶ added in v0.104.0
func (TargetAllocatorWebhook) ValidateUpdate ¶ added in v0.104.0
type UpgradeStrategy ¶ added in v0.41.0
type UpgradeStrategy string
UpgradeStrategy represents how the operator will handle upgrades to the CR when a newer version of the operator is deployed +kubebuilder:validation:Enum=automatic;none
const ( // UpgradeStrategyAutomatic specifies that the operator will automatically apply upgrades to the CR. UpgradeStrategyAutomatic UpgradeStrategy = "automatic" // UpgradeStrategyNone specifies that the operator will not apply any upgrades to the CR. UpgradeStrategyNone UpgradeStrategy = "none" )
Source Files
¶
- allocation_strategy.go
- convert.go
- groupversion_info.go
- ingress_type.go
- instrumentation_types.go
- instrumentation_webhook.go
- mode.go
- opampbridge_capabilities.go
- opampbridge_types.go
- opampbridge_webhook.go
- opentelemetrycollector_types.go
- propagators.go
- samplers.go
- targetallocator_types.go
- targetallocator_webhook.go
- upgrade_strategy.go
- zz_generated.deepcopy.go