Documentation ¶
Overview ¶
Package v1beta1 contains API Schema definitions for the v1beta1 API group +kubebuilder:object:generate=true +groupName=opentelemetry.io
Index ¶
- Constants
- Variables
- type AnyConfig
- type AutoscalerSpec
- type CollectorWebhook
- func (c CollectorWebhook) Default(_ context.Context, obj runtime.Object) error
- func (c CollectorWebhook) ValidateCreate(_ context.Context, obj runtime.Object) (admission.Warnings, error)
- func (c CollectorWebhook) ValidateDelete(_ context.Context, obj runtime.Object) (admission.Warnings, error)
- func (c CollectorWebhook) ValidateUpdate(_ context.Context, _, newObj runtime.Object) (admission.Warnings, error)
- type Config
- type ConfigMapsSpec
- type Ingress
- type IngressRuleType
- type IngressType
- type ManagementStateType
- type MetricSpec
- type MetricsConfigSpec
- type Mode
- type ObservabilitySpec
- type OpenShiftRoute
- type OpenTelemetryCollector
- type OpenTelemetryCollectorList
- type OpenTelemetryCollectorSpec
- type OpenTelemetryCollectorStatus
- type OpenTelemetryCommonFields
- type PodDisruptionBudgetSpec
- type PortsSpec
- type Probe
- type ScaleSubresourceStatus
- type Service
- type TLSRouteTerminationType
- type TargetAllocator
- type TargetAllocatorAllocationStrategy
- type TargetAllocatorEmbedded
- type TargetAllocatorFilterStrategy
- type TargetAllocatorList
- type TargetAllocatorPrometheusCR
- type TargetAllocatorSpec
- type TargetAllocatorStatus
- type UpgradeStrategy
Constants ¶
const ( // TargetAllocatorAllocationStrategyLeastWeighted targets will be distributed to collector with fewer targets currently assigned. TargetAllocatorAllocationStrategyLeastWeighted TargetAllocatorAllocationStrategy = "least-weighted" // TargetAllocatorAllocationStrategyConsistentHashing targets will be consistently added to collectors, which allows a high-availability setup. TargetAllocatorAllocationStrategyConsistentHashing TargetAllocatorAllocationStrategy = "consistent-hashing" // TargetAllocatorFilterStrategyRelabelConfig targets will be consistently drops targets based on the relabel_config. TargetAllocatorFilterStrategyRelabelConfig TargetAllocatorFilterStrategy = "relabel-config" )
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "opentelemetry.io", Version: "v1beta1"} // 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 AnyConfig ¶
type AnyConfig struct {
Object map[string]interface{} `json:"-" yaml:",inline"`
}
AnyConfig represent parts of the config.
func (*AnyConfig) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AnyConfig.
func (*AnyConfig) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AnyConfig) MarshalJSON ¶
MarshalJSON specifies how to convert this object into JSON.
func (*AnyConfig) UnmarshalJSON ¶
UnmarshalJSON implements an alternative parser for this field.
type AutoscalerSpec ¶
type AutoscalerSpec struct { // MinReplicas sets a lower bound to the autoscaling feature. Set this if your 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 ¶
func (in *AutoscalerSpec) DeepCopy() *AutoscalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscalerSpec.
func (*AutoscalerSpec) DeepCopyInto ¶
func (in *AutoscalerSpec) DeepCopyInto(out *AutoscalerSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CollectorWebhook ¶
type CollectorWebhook struct { }
+kubebuilder:object:generate=false
func (CollectorWebhook) ValidateCreate ¶
func (CollectorWebhook) ValidateDelete ¶
func (CollectorWebhook) ValidateUpdate ¶
type Config ¶
type Config struct { // +kubebuilder:pruning:PreserveUnknownFields Receivers AnyConfig `json:"receivers" yaml:"receivers"` // +kubebuilder:pruning:PreserveUnknownFields Exporters AnyConfig `json:"exporters" yaml:"exporters"` // +kubebuilder:pruning:PreserveUnknownFields Processors *AnyConfig `json:"processors,omitempty" yaml:"processors,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields Connectors *AnyConfig `json:"connectors,omitempty" yaml:"connectors,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields Extensions *AnyConfig `json:"extensions,omitempty" yaml:"extensions,omitempty"` Service Service `json:"service" yaml:"service"` }
Config encapsulates collector config.
func (*Config) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigMapsSpec ¶ added in v0.96.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.96.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.96.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 Ingress ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress.
func (*Ingress) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IngressRuleType ¶
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 ¶
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" // IngressTypeOpenshiftRoute specifies that an route entry should be created. IngressTypeRoute IngressType = "route" )
type ManagementStateType ¶
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 ¶
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 ¶
func (in *MetricSpec) DeepCopy() *MetricSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.
func (*MetricSpec) DeepCopyInto ¶
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.96.0
type MetricsConfigSpec struct { // EnableMetrics specifies if ServiceMonitor or PodMonitor(for sidecar mode) should be created for the service managed by the OpenTelemetry Operator. // The operator.observability.prometheus feature gate must be enabled to use this feature. // // +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.96.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.96.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 ObservabilitySpec ¶ added in v0.96.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.96.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.96.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 OpenShiftRoute ¶
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 ¶
func (in *OpenShiftRoute) DeepCopy() *OpenShiftRoute
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenShiftRoute.
func (*OpenShiftRoute) DeepCopyInto ¶
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) 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.
func (*OpenTelemetryCollector) Hub ¶ added in v0.96.0
func (*OpenTelemetryCollector) Hub()
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 { // OpenTelemetryCommonFields are fields that are on all OpenTelemetry CRD workloads. OpenTelemetryCommonFields `json:",inline"` // TargetAllocator indicates a value which determines whether to spawn a target allocation resource or not. // +optional TargetAllocator TargetAllocatorEmbedded `json:"targetAllocator,omitempty"` // Mode represents how the collector should be deployed (deployment, daemonset, statefulset or sidecar) // +optional Mode Mode `json:"mode,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"` // Config is the raw JSON to be used as the collector's configuration. Refer to the OpenTelemetry Collector documentation for details. // The empty objects e.g. batch: should be written as batch: {} otherwise they won't work with kustomize or kubectl edit. // +required // +kubebuilder:pruning:PreserveUnknownFields Config Config `json:"config"` // 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"` // 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"` // ObservabilitySpec defines how telemetry data gets handled. // // +optional // +kubebuilder:validation:Optional // +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Observability" Observability ObservabilitySpec `json:"observability,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 DaemonSetUpdateStrategy appsv1.DaemonSetUpdateStrategy `json:"daemonSetUpdateStrategy,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"` }
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 OpenTelemetryCommonFields ¶
type OpenTelemetryCommonFields 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 generated pods. // +optional Resources v1.ResourceRequirements `json:"resources,omitempty"` // NodeSelector to schedule generated pods. // This only works with the following OpenTelemetryCollector mode's: daemonset, statefulset, and deployment. // +optional NodeSelector map[string]string `json:"nodeSelector,omitempty"` // Args is the set of arguments to pass to the main container's binary. // +optional Args map[string]string `json:"args,omitempty"` // Replicas is the number of pod instances for the underlying replicaset. Set this if you are not using autoscaling. // +optional Replicas *int32 `json:"replicas,omitempty"` // Autoscaler specifies the pod autoscaling configuration to use // for the workload. // +optional Autoscaler *AutoscalerSpec `json:"autoscaler,omitempty"` // PodDisruptionBudget specifies the pod disruption budget configuration to use // for the generated workload. // +optional PodDisruptionBudget *PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"` // SecurityContext configures the container security context for // the generated main 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 // generated 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 // the generated 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. // +optional ServiceAccount string `json:"serviceAccount,omitempty"` // Image indicates the container image to use for the generated pods. // +optional Image string `json:"image,omitempty"` // ImagePullPolicy indicates the pull policy to be used for retrieving the container image. // +optional ImagePullPolicy v1.PullPolicy `json:"imagePullPolicy,omitempty"` // VolumeMounts represents the mount points to use in the underlying 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 & v1.ContainerPort. 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"` // Environment variables to set on the generated pods. // +optional Env []v1.EnvVar `json:"env,omitempty"` // List of sources to populate environment variables on the generated pods. // +optional EnvFrom []v1.EnvFromSource `json:"envFrom,omitempty"` // VolumeClaimTemplates will provide stable storage using PersistentVolumes. // This only works with the following OpenTelemetryCollector mode's: statefulset. // +optional // +listType=atomic VolumeClaimTemplates []v1.PersistentVolumeClaim `json:"volumeClaimTemplates,omitempty"` // Toleration to schedule the generated pods. // This only works with the following OpenTelemetryCollector mode's: daemonset, statefulset, and deployment. // +optional Tolerations []v1.Toleration `json:"tolerations,omitempty"` // Volumes represents which volumes to use in the underlying deployment(s). // +optional // +listType=atomic Volumes []v1.Volume `json:"volumes,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"` // 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 only works with the following OpenTelemetryCollector mode's: statefulset, and deployment. // +optional TopologySpreadConstraints []v1.TopologySpreadConstraint `json:"topologySpreadConstraints,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"` // InitContainers allows injecting initContainers to the generated 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"` // AdditionalContainers allows injecting additional containers into the generated 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 only works with the following OpenTelemetryCollector mode's: daemonset, statefulset, and deployment. // // 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"` }
func (*OpenTelemetryCommonFields) DeepCopy ¶
func (in *OpenTelemetryCommonFields) DeepCopy() *OpenTelemetryCommonFields
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryCommonFields.
func (*OpenTelemetryCommonFields) DeepCopyInto ¶
func (in *OpenTelemetryCommonFields) DeepCopyInto(out *OpenTelemetryCommonFields)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PodDisruptionBudgetSpec ¶
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 ¶
func (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.
func (*PodDisruptionBudgetSpec) DeepCopyInto ¶
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 ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
func (*Probe) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ScaleSubresourceStatus ¶ added in v0.96.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.96.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.96.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 Service ¶
type Service struct { Extensions *[]string `json:"extensions,omitempty" yaml:"extensions,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields Telemetry *AnyConfig `json:"telemetry,omitempty" yaml:"telemetry,omitempty"` // +kubebuilder:pruning:PreserveUnknownFields Pipelines AnyConfig `json:"pipelines" yaml:"pipelines"` }
func (*Service) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service.
func (*Service) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSRouteTerminationType ¶
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" // TLSTerminationPassthrough indicates that the destination service is // responsible for decrypting traffic. TLSRouteTerminationTypePassthrough TLSRouteTerminationType = "passthrough" // TLSTerminationReencrypt indicates that traffic will be decrypted on the edge // and re-encrypt using a new certificate. TLSRouteTerminationTypeReencrypt TLSRouteTerminationType = "reencrypt" )
type TargetAllocator ¶
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 ¶
func (in *TargetAllocator) DeepCopy() *TargetAllocator
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocator.
func (*TargetAllocator) DeepCopyInto ¶
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 ¶
func (in *TargetAllocator) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TargetAllocatorAllocationStrategy ¶
type TargetAllocatorAllocationStrategy string
TargetAllocatorAllocationStrategy represent a strategy Target Allocator uses to distribute targets to each collector +kubebuilder:validation:Enum=least-weighted;consistent-hashing
type TargetAllocatorEmbedded ¶
type TargetAllocatorEmbedded 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. // +optional // +kubebuilder:default:=consistent-hashing AllocationStrategy 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 TargetAllocatorFilterStrategy `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 TargetAllocatorPrometheusCR `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"` }
TargetAllocatorEmbedded defines the configuration for the Prometheus target allocator, embedded in the OpenTelemetryCollector spec.
func (*TargetAllocatorEmbedded) DeepCopy ¶
func (in *TargetAllocatorEmbedded) DeepCopy() *TargetAllocatorEmbedded
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorEmbedded.
func (*TargetAllocatorEmbedded) DeepCopyInto ¶
func (in *TargetAllocatorEmbedded) DeepCopyInto(out *TargetAllocatorEmbedded)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetAllocatorFilterStrategy ¶
type TargetAllocatorFilterStrategy string
TargetAllocatorFilterStrategy represent a filtering strategy for targets before they are assigned to collectors +kubebuilder:validation:Enum="";relabel-config
type TargetAllocatorList ¶
type TargetAllocatorList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []OpenTelemetryCollector `json:"items"` }
TargetAllocatorList contains a list of TargetAllocator.
func (*TargetAllocatorList) DeepCopy ¶
func (in *TargetAllocatorList) DeepCopy() *TargetAllocatorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorList.
func (*TargetAllocatorList) DeepCopyInto ¶
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 ¶
func (in *TargetAllocatorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TargetAllocatorPrometheusCR ¶
type TargetAllocatorPrometheusCR struct { // Enabled indicates whether to use a PrometheusOperator custom resources as targets or not. // +optional Enabled bool `json:"enabled,omitempty"` // Default interval between consecutive scrapes. Intervals set in ServiceMonitors and PodMonitors override it. //Equivalent to the same setting on the Prometheus CR. // // 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. // +optional PodMonitorSelector *metav1.LabelSelector `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. // +optional ServiceMonitorSelector *metav1.LabelSelector `json:"serviceMonitorSelector,omitempty"` }
TargetAllocatorPrometheusCR configures Prometheus CustomResource handling in the Target Allocator.
func (*TargetAllocatorPrometheusCR) DeepCopy ¶
func (in *TargetAllocatorPrometheusCR) DeepCopy() *TargetAllocatorPrometheusCR
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorPrometheusCR.
func (*TargetAllocatorPrometheusCR) DeepCopyInto ¶
func (in *TargetAllocatorPrometheusCR) DeepCopyInto(out *TargetAllocatorPrometheusCR)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TargetAllocatorSpec ¶
type TargetAllocatorSpec struct { // Common defines fields that are common to all OpenTelemetry CRD workloads. OpenTelemetryCommonFields `json:",inline"` // CollectorSelector is the selector for Collector Pods the target allocator will allocate targets to. CollectorSelector metav1.LabelSelector `json:"collectorSelector,omitempty"` // AllocationStrategy determines which strategy the target allocator should use for allocation. // The current options are least-weighted and consistent-hashing. The default option is consistent-hashing // +optional // +kubebuilder:default:=consistent-hashing AllocationStrategy 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 TargetAllocatorFilterStrategy `json:"filterStrategy,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 ScrapeConfigs []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 TargetAllocatorPrometheusCR `json:"prometheusCR,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"` }
TargetAllocatorSpec defines the desired state of TargetAllocator.
func (*TargetAllocatorSpec) DeepCopy ¶
func (in *TargetAllocatorSpec) DeepCopy() *TargetAllocatorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorSpec.
func (*TargetAllocatorSpec) DeepCopyInto ¶
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 ¶
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 ¶
func (in *TargetAllocatorStatus) DeepCopy() *TargetAllocatorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetAllocatorStatus.
func (*TargetAllocatorStatus) DeepCopyInto ¶
func (in *TargetAllocatorStatus) DeepCopyInto(out *TargetAllocatorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type UpgradeStrategy ¶
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" )