Documentation
¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group. +kubebuilder:object:generate=true +groupName=cloudwatch.aws.amazon.com
Index ¶
- Variables
- func SetupCollectorWebhook(mgr ctrl.Manager, cfg config.Config) error
- func SetupInstrumentationWebhook(mgr ctrl.Manager, cfg config.Config) error
- type AmazonCloudWatchAgent
- type AmazonCloudWatchAgentList
- type AmazonCloudWatchAgentSpec
- type AmazonCloudWatchAgentStatus
- type ApacheHttpd
- type AutoscalerSpec
- type CollectorWebhook
- func (c CollectorWebhook) Default(ctx context.Context, obj runtime.Object) error
- func (c CollectorWebhook) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (c CollectorWebhook) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error)
- func (c CollectorWebhook) ValidateUpdate(ctx context.Context, oldObj, newObj runtime.Object) (admission.Warnings, error)
- type ConfigMapsSpec
- type DcgmExporter
- type DcgmExporterList
- type DcgmExporterSpec
- type DcgmExporterStatus
- type DotNet
- type Exporter
- 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 NeuronMonitor
- type NeuronMonitorList
- type NeuronMonitorSpec
- type NeuronMonitorStatus
- type Nginx
- type NodeJS
- type ObservabilitySpec
- type OpenShiftRoute
- type PodDisruptionBudgetSpec
- type Probe
- type Propagator
- type Python
- type Resource
- type Sampler
- type SamplerType
- type ScaleSubresourceStatus
- type TLSRouteTerminationType
- type UpgradeStrategy
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "cloudwatch.aws.amazon.com", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme. SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
func SetupCollectorWebhook ¶ added in v1.1.0
Types ¶
type AmazonCloudWatchAgent ¶
type AmazonCloudWatchAgent struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AmazonCloudWatchAgentSpec `json:"spec,omitempty"`
Status AmazonCloudWatchAgentStatus `json:"status,omitempty"`
}
AmazonCloudWatchAgent is the Schema for the amazoncloudwatchagents API.
func (*AmazonCloudWatchAgent) DeepCopy ¶
func (in *AmazonCloudWatchAgent) DeepCopy() *AmazonCloudWatchAgent
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonCloudWatchAgent.
func (*AmazonCloudWatchAgent) DeepCopyInto ¶
func (in *AmazonCloudWatchAgent) DeepCopyInto(out *AmazonCloudWatchAgent)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmazonCloudWatchAgent) DeepCopyObject ¶
func (in *AmazonCloudWatchAgent) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmazonCloudWatchAgentList ¶
type AmazonCloudWatchAgentList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []AmazonCloudWatchAgent `json:"items"`
}
AmazonCloudWatchAgentList contains a list of AmazonCloudWatchAgent.
func (*AmazonCloudWatchAgentList) DeepCopy ¶
func (in *AmazonCloudWatchAgentList) DeepCopy() *AmazonCloudWatchAgentList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonCloudWatchAgentList.
func (*AmazonCloudWatchAgentList) DeepCopyInto ¶
func (in *AmazonCloudWatchAgentList) DeepCopyInto(out *AmazonCloudWatchAgentList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*AmazonCloudWatchAgentList) DeepCopyObject ¶
func (in *AmazonCloudWatchAgentList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type AmazonCloudWatchAgentSpec ¶
type AmazonCloudWatchAgentSpec 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 your are not using autoscaling
// +optional
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 "AmazonCloudWatchAgent.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 "AmazonCloudWatchAgent.Spec.Autoscaler.MaxReplicas" instead.
MaxReplicas *int32 `json:"maxReplicas,omitempty"`
// Autoscaler specifies the pod autoscaling configuration to use
// for the AmazonCloudWatchAgent workload.
//
// +optional
Autoscaler *AutoscalerSpec `json:"autoscaler,omitempty"`
// PodDisruptionBudget specifies the pod disruption budget configuration to use
// for the AmazonCloudWatchAgent workload.
//
// +optional
PodDisruptionBudget *PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
// SecurityContext configures the container security context for
// the amazon-cloudwatch-agent 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
// amazon-cloudwatch-agent pod, when running as a deployment, daemonset,
// or statefulset.
//
// In sidecar mode, the amazon-cloudwatch-agent-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"`
// 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"`
// WorkingDir represents Container's working directory. If not specified,
// the container runtime's default will be used, which might
// be configured in the container image. Cannot be updated.
// +optional
WorkingDir string `json:"workingDir,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 JSON to be used as the collector's configuration. Refer to the OpenTelemetry Collector documentation for details.
// +required
Config string `json:"config,omitempty"`
// Config is the raw YAML to be used as the collector's configuration. Refer to the OpenTelemetry Collector documentation for details.
// +optional
OtelConfig string `json:"otelConfig,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 []v1.ServicePort `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"`
// 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"`
// 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 AmazonCloudWatchAgent
// 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"`
}
AmazonCloudWatchAgentSpec defines the desired state of AmazonCloudWatchAgent.
func (*AmazonCloudWatchAgentSpec) DeepCopy ¶
func (in *AmazonCloudWatchAgentSpec) DeepCopy() *AmazonCloudWatchAgentSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonCloudWatchAgentSpec.
func (*AmazonCloudWatchAgentSpec) DeepCopyInto ¶
func (in *AmazonCloudWatchAgentSpec) DeepCopyInto(out *AmazonCloudWatchAgentSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmazonCloudWatchAgentStatus ¶
type AmazonCloudWatchAgentStatus struct {
// Scale is the AmazonCloudWatchAgent'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 "AmazonCloudWatchAgent.Status.Scale.Replicas" instead.
Replicas int32 `json:"replicas,omitempty"`
}
AmazonCloudWatchAgentStatus defines the observed state of AmazonCloudWatchAgent.
func (*AmazonCloudWatchAgentStatus) DeepCopy ¶
func (in *AmazonCloudWatchAgentStatus) DeepCopy() *AmazonCloudWatchAgentStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonCloudWatchAgentStatus.
func (*AmazonCloudWatchAgentStatus) DeepCopyInto ¶
func (in *AmazonCloudWatchAgentStatus) DeepCopyInto(out *AmazonCloudWatchAgentStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ApacheHttpd ¶ added in v1.1.0
type ApacheHttpd struct {
// Image is a container image with Apache SDK and auto-instrumentation.
// +optional
Image string `json:"image,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 v1.1.0
func (in *ApacheHttpd) DeepCopy() *ApacheHttpd
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApacheHttpd.
func (*ApacheHttpd) DeepCopyInto ¶ added in v1.1.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 v1.1.0
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 AmazonCloudWatchAgent's pod autoscaling specification.
func (*AutoscalerSpec) DeepCopy ¶ added in v1.1.0
func (in *AutoscalerSpec) DeepCopy() *AutoscalerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoscalerSpec.
func (*AutoscalerSpec) DeepCopyInto ¶ added in v1.1.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 CollectorWebhook ¶ added in v1.1.0
type CollectorWebhook struct {
// contains filtered or unexported fields
}
func (CollectorWebhook) ValidateCreate ¶ added in v1.1.0
func (CollectorWebhook) ValidateDelete ¶ added in v1.1.0
func (CollectorWebhook) ValidateUpdate ¶ added in v1.1.0
type ConfigMapsSpec ¶ added in v1.1.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 v1.1.0
func (in *ConfigMapsSpec) DeepCopy() *ConfigMapsSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapsSpec.
func (*ConfigMapsSpec) DeepCopyInto ¶ added in v1.1.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 DcgmExporter ¶ added in v1.3.0
type DcgmExporter struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec DcgmExporterSpec `json:"spec,omitempty"`
Status DcgmExporterStatus `json:"status,omitempty"`
}
DcgmExporter is the Schema for the DcgmExporters API.
func (*DcgmExporter) DeepCopy ¶ added in v1.3.0
func (in *DcgmExporter) DeepCopy() *DcgmExporter
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DcgmExporter.
func (*DcgmExporter) DeepCopyInto ¶ added in v1.3.0
func (in *DcgmExporter) DeepCopyInto(out *DcgmExporter)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DcgmExporter) DeepCopyObject ¶ added in v1.3.0
func (in *DcgmExporter) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DcgmExporterList ¶ added in v1.3.0
type DcgmExporterList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []DcgmExporter `json:"items"`
}
DcgmExporterList contains a list of DcgmExporter.
func (*DcgmExporterList) DeepCopy ¶ added in v1.3.0
func (in *DcgmExporterList) DeepCopy() *DcgmExporterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DcgmExporterList.
func (*DcgmExporterList) DeepCopyInto ¶ added in v1.3.0
func (in *DcgmExporterList) DeepCopyInto(out *DcgmExporterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DcgmExporterList) DeepCopyObject ¶ added in v1.3.0
func (in *DcgmExporterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DcgmExporterSpec ¶ added in v1.3.0
type DcgmExporterSpec struct {
// Resources to set on the DCGM Exporter pods.
// +optional
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// NodeSelector to schedule DCGM Exporter 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 DCGM Exporter binary
// +optional
Args map[string]string `json:"args,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 DCGM Exporter.
// +optional
Image string `json:"image,omitempty"`
// MetricsConfig is the raw CSV to be used as metric configuration.
// +required
MetricsConfig string `json:"metricsConfig,omitempty"`
// TlsConfig is the raw YAML to be used as the exporter TLS configuration.
// +optional
TlsConfig string `json:"tlsConfig,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 []v1.ServicePort `json:"ports,omitempty"`
// ENV vars to set on the DCGM Exporter Pods. These can then in certain cases be
// consumed in the config file for the Collector.
// +optional
Env []v1.EnvVar `json:"env,omitempty"`
// Toleration to schedule DCGM Exporter 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"`
// VolumeMounts represents the mount points to use in the underlying collector deployment(s)
// +optional
// +listType=atomic
VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`
// If specified, indicates the pod's scheduling constraints
// +optional
Affinity *v1.Affinity `json:"affinity,omitempty"`
}
DcgmExporterSpec defines the desired state of DcgmExporter.
func (*DcgmExporterSpec) DeepCopy ¶ added in v1.3.0
func (in *DcgmExporterSpec) DeepCopy() *DcgmExporterSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DcgmExporterSpec.
func (*DcgmExporterSpec) DeepCopyInto ¶ added in v1.3.0
func (in *DcgmExporterSpec) DeepCopyInto(out *DcgmExporterSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DcgmExporterStatus ¶ added in v1.3.0
type DcgmExporterStatus struct {
// Scale is the DcgmExporter's scale subresource status.
// +optional
Scale ScaleSubresourceStatus `json:"scale,omitempty"`
// Version of the managed DCGM Exporter (operand)
// +optional
Version string `json:"version,omitempty"`
// Image indicates the container image to use for the DCGM Exporter.
// +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 "DcgmExporter.Status.Scale.Replicas" instead.
Replicas int32 `json:"replicas,omitempty"`
}
DcgmExporterStatus defines the observed state of DcgmExporter.
func (*DcgmExporterStatus) DeepCopy ¶ added in v1.3.0
func (in *DcgmExporterStatus) DeepCopy() *DcgmExporterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DcgmExporterStatus.
func (*DcgmExporterStatus) DeepCopyInto ¶ added in v1.3.0
func (in *DcgmExporterStatus) DeepCopyInto(out *DcgmExporterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DotNet ¶ added in v1.1.0
type DotNet struct {
// Image is a container image with DotNet SDK and auto-instrumentation.
// +optional
Image string `json:"image,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 v1.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DotNet.
func (*DotNet) DeepCopyInto ¶ added in v1.1.0
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.
// +optional
Endpoint string `json:"endpoint,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 Go ¶ added in v1.1.0
type Go struct {
// Image is a container image with Go SDK and auto-instrumentation.
// +optional
Image string `json:"image,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 v1.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Go.
func (*Go) DeepCopyInto ¶ added in v1.1.0
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/aws/amazon-cloudwatch-agent-operator/issues/1306. NOTE: As a workaround, port name and appProtocol could be specified directly in the CR. SEE: AmazonCloudWatchAgent.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 ¶ added in v1.1.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 ¶
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 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"`
// 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"`
}
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 v1.1.0
type InstrumentationWebhook struct {
// contains filtered or unexported fields
}
func NewInstrumentationWebhook ¶ added in v1.1.0
func (InstrumentationWebhook) ValidateCreate ¶ added in v1.1.0
func (InstrumentationWebhook) ValidateDelete ¶ added in v1.1.0
func (InstrumentationWebhook) ValidateUpdate ¶ added in v1.1.0
type Java ¶
type Java struct {
// Image is a container image with javaagent auto-instrumentation JAR.
// +optional
Image string `json:"image,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"`
}
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 v1.1.0
type ManagementStateType string
ManagementStateType defines the type for CR management states.
+kubebuilder:validation:Enum=managed;unmanaged
const ( // ManagementStateManaged when the AmazonCloudWatchAgent custom resource should be // reconciled by the operator. ManagementStateManaged ManagementStateType = "managed" // ManagementStateUnmanaged when the AmazonCloudWatchAgent custom resource should not be // reconciled by the operator. ManagementStateUnmanaged ManagementStateType = "unmanaged" )
type MetricSpec ¶ added in v1.1.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 v1.1.0
func (in *MetricSpec) DeepCopy() *MetricSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricSpec.
func (*MetricSpec) DeepCopyInto ¶ added in v1.1.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 v1.1.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"`
}
MetricsConfigSpec defines a metrics config.
func (*MetricsConfigSpec) DeepCopy ¶ added in v1.1.0
func (in *MetricsConfigSpec) DeepCopy() *MetricsConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsConfigSpec.
func (*MetricsConfigSpec) DeepCopyInto ¶ added in v1.1.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 NeuronMonitor ¶ added in v1.3.0
type NeuronMonitor struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NeuronMonitorSpec `json:"spec,omitempty"`
Status NeuronMonitorStatus `json:"status,omitempty"`
}
NeuronMonitor is the Schema for the NeuronMonitor API.
func (*NeuronMonitor) DeepCopy ¶ added in v1.3.0
func (in *NeuronMonitor) DeepCopy() *NeuronMonitor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NeuronMonitor.
func (*NeuronMonitor) DeepCopyInto ¶ added in v1.3.0
func (in *NeuronMonitor) DeepCopyInto(out *NeuronMonitor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NeuronMonitor) DeepCopyObject ¶ added in v1.3.0
func (in *NeuronMonitor) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NeuronMonitorList ¶ added in v1.3.0
type NeuronMonitorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NeuronMonitor `json:"items"`
}
NeuronMonitorList contains a list of NeuronMonitor.
func (*NeuronMonitorList) DeepCopy ¶ added in v1.3.0
func (in *NeuronMonitorList) DeepCopy() *NeuronMonitorList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NeuronMonitorList.
func (*NeuronMonitorList) DeepCopyInto ¶ added in v1.3.0
func (in *NeuronMonitorList) DeepCopyInto(out *NeuronMonitorList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NeuronMonitorList) DeepCopyObject ¶ added in v1.3.0
func (in *NeuronMonitorList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NeuronMonitorSpec ¶ added in v1.3.0
type NeuronMonitorSpec struct {
// Resources to set on the Neuron Monitor Exporter pods.
// +optional
Resources v1.ResourceRequirements `json:"resources,omitempty"`
// NodeSelector to schedule Neuron Monitor Exporter pods.
// This is only relevant to daemonset, statefulset, and deployment mode
// +optional
NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// SecurityContext configures the container security context for
// the amazon-cloudwatch-agent 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"`
// Entrypoint array. Not executed within a shell.
// The container image's ENTRYPOINT is used if this is not provided.
// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
// cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced
// to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will
// produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless
// of whether the variable exists or not. Cannot be updated.
// More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
// +optional
Command []string `json:"command,omitempty"`
// Args is the set of arguments to pass to the Neuron Monitor Exporter binary
// +optional
Args map[string]string `json:"args,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 Neuron Monitor Exporter.
// +optional
Image string `json:"image,omitempty"`
// MonitorConfig is the raw Json to be used as monitor configuration.
// +required
MonitorConfig string `json:"monitorConfig,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 []v1.ServicePort `json:"ports,omitempty"`
// ENV vars to set on the Neuron Monitor Exporter Pods. These can then in certain cases be
// consumed in the config file for the Collector.
// +optional
Env []v1.EnvVar `json:"env,omitempty"`
// Toleration to schedule Neuron Monitor Exporter 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"`
// VolumeMounts represents the mount points to use in the underlying collector deployment(s)
// +optional
// +listType=atomic
VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`
// If specified, indicates the pod's scheduling constraints
// +optional
Affinity *v1.Affinity `json:"affinity,omitempty"`
}
NeuronMonitorSpec defines the desired state of NeuronMonitor.
func (*NeuronMonitorSpec) DeepCopy ¶ added in v1.3.0
func (in *NeuronMonitorSpec) DeepCopy() *NeuronMonitorSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NeuronMonitorSpec.
func (*NeuronMonitorSpec) DeepCopyInto ¶ added in v1.3.0
func (in *NeuronMonitorSpec) DeepCopyInto(out *NeuronMonitorSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NeuronMonitorStatus ¶ added in v1.3.0
type NeuronMonitorStatus struct {
// Scale is the NeuronMonitor's scale subresource status.
// +optional
Scale ScaleSubresourceStatus `json:"scale,omitempty"`
// Version of the managed Neuron Monitor Exporter (operand)
// +optional
Version string `json:"version,omitempty"`
// Image indicates the container image to use for the Neuron Monitor Exporter.
// +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 "NeuronMonitor.Status.Scale.Replicas" instead.
Replicas int32 `json:"replicas,omitempty"`
}
NeuronMonitorStatus defines the observed state of NeuronMonitor.
func (*NeuronMonitorStatus) DeepCopy ¶ added in v1.3.0
func (in *NeuronMonitorStatus) DeepCopy() *NeuronMonitorStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NeuronMonitorStatus.
func (*NeuronMonitorStatus) DeepCopyInto ¶ added in v1.3.0
func (in *NeuronMonitorStatus) DeepCopyInto(out *NeuronMonitorStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Nginx ¶ added in v1.1.0
type Nginx struct {
// Image is a container image with Nginx SDK and auto-instrumentation.
// +optional
Image string `json:"image,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 v1.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Nginx.
func (*Nginx) DeepCopyInto ¶ added in v1.1.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeJS ¶ added in v1.1.0
type NodeJS struct {
// Image is a container image with NodeJS SDK and auto-instrumentation.
// +optional
Image string `json:"image,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 ¶ added in v1.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeJS.
func (*NodeJS) DeepCopyInto ¶ added in v1.1.0
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ObservabilitySpec ¶ added in v1.1.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 v1.1.0
func (in *ObservabilitySpec) DeepCopy() *ObservabilitySpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObservabilitySpec.
func (*ObservabilitySpec) DeepCopyInto ¶ added in v1.1.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 PodDisruptionBudgetSpec ¶ added in v1.1.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 AmazonCloudWatchAgent's pod disruption budget specification.
func (*PodDisruptionBudgetSpec) DeepCopy ¶ added in v1.1.0
func (in *PodDisruptionBudgetSpec) DeepCopy() *PodDisruptionBudgetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodDisruptionBudgetSpec.
func (*PodDisruptionBudgetSpec) DeepCopyInto ¶ added in v1.1.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 Probe ¶ added in v1.1.0
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 v1.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Probe.
func (*Probe) DeepCopyInto ¶ added in v1.1.0
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 ¶ added in v1.1.0
type Python struct {
// Image is a container image with Python SDK and auto-instrumentation.
// +optional
Image string `json:"image,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 ¶ added in v1.1.0
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Python.
func (*Python) DeepCopyInto ¶ added in v1.1.0
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 ¶
type ScaleSubresourceStatus struct {
// The selector used to match the AmazonCloudWatchAgent's
// deployment or statefulSet pods.
// +optional
Selector string `json:"selector,omitempty"`
// The total number non-terminated pods targeted by this
// AmazonCloudWatchAgent's deployment or statefulSet.
// +optional
Replicas int32 `json:"replicas,omitempty"`
// StatusReplicas is the number of pods targeted by this AmazonCloudWatchAgent's with a Ready Condition /
// Total number of non-terminated pods targeted by this AmazonCloudWatchAgent's (their labels match the selector).
// Deployment, Daemonset, StatefulSet.
// +optional
StatusReplicas string `json:"statusReplicas,omitempty"`
}
ScaleSubresourceStatus defines the observed state of the AmazonCloudWatchAgent's scale subresource.
func (*ScaleSubresourceStatus) DeepCopy ¶
func (in *ScaleSubresourceStatus) DeepCopy() *ScaleSubresourceStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSubresourceStatus.
func (*ScaleSubresourceStatus) DeepCopyInto ¶
func (in *ScaleSubresourceStatus) DeepCopyInto(out *ScaleSubresourceStatus)
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 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" )