v2alpha1

package
v1.10.0 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Package v2alpha1 contains API Schema definitions for the datadoghq v2alpha1 API group +kubebuilder:object:generate=true +groupName=datadoghq.com

Index

Constants

View Source
const (

	// ClusterAgentReconcileConditionType ReconcileConditionType for Cluster Agent component
	ClusterAgentReconcileConditionType = "ClusterAgentReconcile"
	// AgentReconcileConditionType ReconcileConditionType for Agent component
	AgentReconcileConditionType = "AgentReconcile"
	// ClusterChecksRunnerReconcileConditionType ReconcileConditionType for Cluster Checks Runner component
	ClusterChecksRunnerReconcileConditionType = "ClusterChecksRunnerReconcile"
	// OverrideReconcileConflictConditionType ReconcileConditionType for override conflict
	OverrideReconcileConflictConditionType = "OverrideReconcileConflict"
	// DatadogAgentReconcileErrorConditionType ReconcileConditionType for DatadogAgent reconcile error
	DatadogAgentReconcileErrorConditionType = "DatadogAgentReconcileError"

	// ExtraConfdConfigMapName is the name of the ConfigMap storing Custom Confd data
	ExtraConfdConfigMapName = "%s-extra-confd"
	// ExtraChecksdConfigMapName is the name of the ConfigMap storing Custom Checksd data
	ExtraChecksdConfigMapName = "%s-extra-checksd"

	// DefaultAgentHealthPort default agent health port
	DefaultAgentHealthPort int32 = 5555

	// Liveness probe default config
	DefaultLivenessProbeInitialDelaySeconds int32 = 15
	DefaultLivenessProbePeriodSeconds       int32 = 15
	DefaultLivenessProbeTimeoutSeconds      int32 = 5
	DefaultLivenessProbeSuccessThreshold    int32 = 1
	DefaultLivenessProbeFailureThreshold    int32 = 6
	DefaultLivenessProbeHTTPPath                  = "/live"

	// Readiness probe default config
	DefaultReadinessProbeInitialDelaySeconds int32 = 15
	DefaultReadinessProbePeriodSeconds       int32 = 15
	DefaultReadinessProbeTimeoutSeconds      int32 = 5
	DefaultReadinessProbeSuccessThreshold    int32 = 1
	DefaultReadinessProbeFailureThreshold    int32 = 6
	DefaultReadinessProbeHTTPPath                  = "/ready"

	// Startup probe default config
	DefaultStartupProbeInitialDelaySeconds int32 = 15
	DefaultStartupProbePeriodSeconds       int32 = 15
	DefaultStartupProbeTimeoutSeconds      int32 = 5
	DefaultStartupProbeSuccessThreshold    int32 = 1
	DefaultStartupProbeFailureThreshold    int32 = 6
	DefaultStartupProbeHTTPPath                  = "/startup"

	// DefaultApmPort default apm port
	DefaultApmPort = 8126
	// DefaultApmPortName default apm port name
	DefaultApmPortName = "traceport"

	// DefaultAgentResourceSuffix use as suffix for agent resource naming
	DefaultAgentResourceSuffix = "agent"
	// DefaultClusterAgentResourceSuffix use as suffix for cluster-agent resource naming
	DefaultClusterAgentResourceSuffix = "cluster-agent"
	// DefaultClusterChecksRunnerResourceSuffix use as suffix for cluster-checks-runner resource naming
	DefaultClusterChecksRunnerResourceSuffix = "cluster-checks-runner"
	// DefaultMetricsServerResourceSuffix use as suffix for cluster-agent metrics-server resource naming
	DefaultMetricsServerResourceSuffix = "cluster-agent-metrics-server"
	// DefaultAPPKeyKey default app-key key (use in secret for instance).
	DefaultAPPKeyKey = "app_key"
	// DefaultAPIKeyKey default api-key key (use in secret for instance).
	DefaultAPIKeyKey = "api_key"
	// DefaultTokenKey default token key (use in secret for instance).
	DefaultTokenKey = "token"
	// DefaultClusterAgentReplicas default cluster-agent deployment replicas
	DefaultClusterAgentReplicas = 1
	// DefaultClusterAgentServicePort default cluster-agent service port
	DefaultClusterAgentServicePort = 5005
	// DefaultClusterChecksRunnerReplicas default cluster checks runner deployment replicas
	DefaultClusterChecksRunnerReplicas = 1
	// DefaultAdmissionControllerServicePort default admission controller service port
	DefaultAdmissionControllerServicePort = 443
	// DefaultAdmissionControllerTargetPort default admission controller pod port
	DefaultAdmissionControllerTargetPort = 8000
	// DefaultAdmissionControllerWebhookName default admission controller webhook name
	DefaultAdmissionControllerWebhookName string = "datadog-webhook"
	// DefaultDogstatsdOriginDetection default Origin Detection
	// DefaultDogstatsdOriginDetection = "false" // CELENE NOT USED!
	// DefaultDogstatsdPort default dogstatsd port
	DefaultDogstatsdPort = 8125
	// DefaultDogstatsdPortName default dogstatsd port name
	DefaultDogstatsdPortName = "dogstatsdport"
	// DefaultKubeStateMetricsCoreConf default ksm core ConfigMap name
	DefaultKubeStateMetricsCoreConf string = "kube-state-metrics-core-config"
	// DefaultOrchestratorExplorerConf default orchestrator explorer ConfigMap name
	DefaultOrchestratorExplorerConf string = "orchestrator-explorer-config"
	// DefaultKubeAPIServerConf default Kubernetes APIServer ConfigMap name
	DefaultKubeAPIServerConf string = "kube-apiserver-config"
	// DefaultSystemProbeSocketPath default System Probe socket path
	DefaultSystemProbeSocketPath string = "/var/run/sysprobe/sysprobe.sock"
	// DefaultCSPMConf default CSPM ConfigMap name
	DefaultCSPMConf string = "cspm-config"
	// DefaultCWSConf default CWS ConfigMap name
	DefaultCWSConf string = "cws-config"
	// DefaultHelmCheckConf default Helm Check ConfigMap name
	DefaultHelmCheckConf string = "helm-check-config"

	// Default Image name
	DefaultAgentImageName        string = "agent"
	DefaultClusterAgentImageName string = "cluster-agent"
	DefaultImageRegistry         string = "gcr.io/datadoghq"
	DefaultAzureImageRegistry    string = "datadoghq.azurecr.io"
	DefaultEuropeImageRegistry   string = "eu.gcr.io/datadoghq"
	DefaultAsiaImageRegistry     string = "asia.gcr.io/datadoghq"
	DefaultGovImageRegistry      string = "public.ecr.aws/datadog"

	KubeServicesAndEndpointsConfigProviders = "kube_services kube_endpoints"
	KubeServicesAndEndpointsListeners       = "kube_services kube_endpoints"
	EndpointsChecksConfigProvider           = "endpointschecks"
	ClusterAndEndpointsConfigProviders      = "clusterchecks endpointschecks"
)
View Source
const (

	// DefaultAdmissionControllerCWSInstrumentationEnabled default CWS Instrumentation enabled value
	DefaultAdmissionControllerCWSInstrumentationEnabled bool = false
	// DefaultAdmissionControllerCWSInstrumentationMode default CWS Instrumentation mode
	DefaultAdmissionControllerCWSInstrumentationMode string = "remote_copy"
)

Default configuration values. These are the recommended settings for monitoring with Datadog in Kubernetes.

Variables

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

	// 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 CheckAPIKeySufficiency

func CheckAPIKeySufficiency(creds *DatadogCredentials, envVarName string) bool

CheckAPIKeySufficiency use to check for the API key if: 1. an existing secret is defined, or 2. the corresponding env var is defined (whether in ENC format or not) If either of these is true, the secret is not needed.

func CheckAppKeySufficiency

func CheckAppKeySufficiency(creds *DatadogCredentials, envVarName string) bool

CheckAppKeySufficiency use to check for the APP key if: 1. an existing secret is defined, or 2. the corresponding env var is defined (whether in ENC format or not) If either of these is true, the secret is not needed.

func DefaultDatadogAgent

func DefaultDatadogAgent(dda *DatadogAgent)

DefaultDatadogAgent defaults the DatadogAgentSpec GlobalConfig and Features.

func DeleteDatadogAgentStatusCondition

func DeleteDatadogAgentStatusCondition(status *DatadogAgentStatus, conditionType string)

DeleteDatadogAgentStatusCondition is used to delete a condition

func GetAPIKeySecret

func GetAPIKeySecret(credentials *DatadogCredentials, defaultName string) (bool, string, string)

GetAPIKeySecret returns the API key secret name and the key inside the secret returns <isSet>, secretName, secretKey Note that the default name can differ depending on where this is called

func GetAgentServiceAccount

func GetAgentServiceAccount(dda *DatadogAgent) string

GetAgentServiceAccount returns the agent service account name

func GetAgentServiceAccountAnnotations added in v1.10.0

func GetAgentServiceAccountAnnotations(dda *DatadogAgent) map[string]string

GetAgentServiceAccountAnnotations returns the annotations for the agent service account.

func GetAppKeySecret

func GetAppKeySecret(credentials *DatadogCredentials, defaultName string) (bool, string, string)

GetAppKeySecret returns the APP key secret name and the key inside the secret returns <isSet>, secretName, secretKey Note that the default name can differ depending on where this is called

func GetClusterAgentServiceAccount

func GetClusterAgentServiceAccount(dda *DatadogAgent) string

GetClusterAgentServiceAccount return the cluster-agent serviceAccountName

func GetClusterAgentServiceAccountAnnotations added in v1.10.0

func GetClusterAgentServiceAccountAnnotations(dda *DatadogAgent) map[string]string

GetClusterAgentServiceAccountAnnotations returns the annotations for the cluster-agent service account.

func GetClusterChecksRunnerServiceAccount

func GetClusterChecksRunnerServiceAccount(dda *DatadogAgent) string

GetClusterChecksRunnerServiceAccount return the cluster-checks-runner service account name

func GetClusterChecksRunnerServiceAccountAnnotations added in v1.10.0

func GetClusterChecksRunnerServiceAccountAnnotations(dda *DatadogAgent) map[string]string

GetClusterChecksRunnerServiceAccountAnnotations returns the annotations for the cluster-checks-runner service account.

func GetConfName

func GetConfName(owner metav1.Object, conf *CustomConfig, defaultName string) string

GetConfName get the name of the Configmap for a CustomConfigSpec

func GetDefaultCredentialsSecretName

func GetDefaultCredentialsSecretName(dda metav1.Object) string

GetDefaultCredentialsSecretName returns the default name for credentials secret

func GetDefaultDCATokenSecretName

func GetDefaultDCATokenSecretName(dda metav1.Object) string

GetDefaultDCATokenSecretName returns the default name for cluster-agent secret

func GetDefaultLivenessProbe added in v1.10.0

func GetDefaultLivenessProbe() *corev1.Probe

GetDefaultLivenessProbe creates a defaulted LivenessProbe

func GetDefaultReadinessProbe added in v1.10.0

func GetDefaultReadinessProbe() *corev1.Probe

GetDefaultReadinessProbe creates a defaulted ReadinessProbe

func GetDefaultStartupProbe added in v1.10.0

func GetDefaultStartupProbe() *corev1.Probe

GetDefaultStartupProbe creates a defaulted StartupProbe

func GetDefaultTraceAgentProbe added in v1.10.0

func GetDefaultTraceAgentProbe() *corev1.Probe

GetDefaultTraceAgentProbe creates a defaulted liveness/readiness probe for the Trace Agent

func GetImage added in v1.10.0

func GetImage(imageSpec *AgentImageConfig, registry *string) string

GetImage builds the image string based on ImageConfig and the registry configuration.

func GetKeysFromCredentials

func GetKeysFromCredentials(credentials *DatadogCredentials) map[string][]byte

GetKeysFromCredentials returns any key data that need to be stored in a new secret

func GetLocalAgentServiceName

func GetLocalAgentServiceName(dda *DatadogAgent) string

GetLocalAgentServiceName returns the name used for the local agent service

func GetMetav1ConditionStatus

func GetMetav1ConditionStatus(status bool) metav1.ConditionStatus

GetMetav1ConditionStatus converts a boolean to metav1.ConditionStatus

func IsCCREnabled

func IsCCREnabled(dda *DatadogAgent) bool

IsCCREnabled returns whether the DDA should use Cluster Checks Runners

func IsClusterChecksEnabled

func IsClusterChecksEnabled(dda *DatadogAgent) bool

IsClusterChecksEnabled returns whether the DDA should use cluster checks

func IsHostNetworkEnabled

func IsHostNetworkEnabled(dda *DatadogAgent, component ComponentName) bool

IsHostNetworkEnabled returns whether the pod should use the host's network namespace

func NewDatadogAgentStatusCondition

func NewDatadogAgentStatusCondition(conditionType string, conditionStatus metav1.ConditionStatus, now metav1.Time, reason, message string) metav1.Condition

NewDatadogAgentStatusCondition returns new metav1.Condition instance

func SetDatadogAgentStatusCondition

func SetDatadogAgentStatusCondition(status *DatadogAgentStatus, condition *metav1.Condition)

SetDatadogAgentStatusCondition use to set a condition

func UpdateDatadogAgentStatusCondition

func UpdateDatadogAgentStatusCondition(condition *metav1.Condition, now metav1.Time, t string, conditionStatus metav1.ConditionStatus, reason, message string) *metav1.Condition

UpdateDatadogAgentStatusCondition used to update a specific string

func UpdateDatadogAgentStatusConditions

func UpdateDatadogAgentStatusConditions(status *DatadogAgentStatus, now metav1.Time, t string, conditionStatus metav1.ConditionStatus, reason, message string, writeFalseIfNotExist bool)

UpdateDatadogAgentStatusConditions used to update a specific string in conditions

func UpdateDatadogAgentStatusConditionsFailure

func UpdateDatadogAgentStatusConditionsFailure(status *DatadogAgentStatus, now metav1.Time, conditionType, reason, message string, err error)

UpdateDatadogAgentStatusConditionsFailure used to update the failure StatusConditions

Types

type APMFeatureConfig

type APMFeatureConfig struct {
	// Enabled enables Application Performance Monitoring.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// HostPortConfig contains host port configuration.
	// Enabled Default: false
	// Port Default: 8126
	// +optional
	HostPortConfig *HostPortConfig `json:"hostPortConfig,omitempty"`

	// UnixDomainSocketConfig contains socket configuration.
	// See also: https://docs.datadoghq.com/agent/kubernetes/apm/?tab=helm#agent-environment-variables
	// Enabled Default: true
	// Path Default: `/var/run/datadog/apm.socket`
	// +optional
	UnixDomainSocketConfig *UnixDomainSocketConfig `json:"unixDomainSocketConfig,omitempty"`

	// SingleStepInstrumentation allows the agent to inject the Datadog APM libraries into all pods in the cluster.
	// Feature is in beta.
	// See also: https://docs.datadoghq.com/tracing/trace_collection/single-step-apm
	// Enabled Default: false
	// +optional
	SingleStepInstrumentation *SingleStepInstrumentation `json:"instrumentation,omitempty"`
}

APMFeatureConfig contains APM (Application Performance Monitoring) configuration. APM runs in the Trace Agent.

func (*APMFeatureConfig) DeepCopy

func (in *APMFeatureConfig) DeepCopy() *APMFeatureConfig

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

func (*APMFeatureConfig) DeepCopyInto

func (in *APMFeatureConfig) DeepCopyInto(out *APMFeatureConfig)

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

type ASMFeatureConfig

type ASMFeatureConfig struct {
	// Threats configures ASM App & API Protection.
	// Enabled Default: false
	// +optional
	Threats *ASMThreatsConfig `json:"threats,omitempty"`

	// SCA configures Software Composition Analysis.
	// Enabled Default: false
	// +optional
	SCA *ASMSCAConfig `json:"sca,omitempty"`

	// IAST configures Interactive Application Security Testing.
	// Enabled Default: false
	// +optional
	IAST *ASMIASTConfig `json:"iast,omitempty"`
}

ASMFeatureConfig contains Application Security Management (ASM) configuration. Note that this will only affect pods where the Datadog client libraries are installed or APM Single Step Instrumentation is enabled.

func (*ASMFeatureConfig) DeepCopy

func (in *ASMFeatureConfig) DeepCopy() *ASMFeatureConfig

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

func (*ASMFeatureConfig) DeepCopyInto

func (in *ASMFeatureConfig) DeepCopyInto(out *ASMFeatureConfig)

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

type ASMIASTConfig

type ASMIASTConfig struct {
	// Enabled enables Interactive Application Security Testing (IAST).
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

func (*ASMIASTConfig) DeepCopy

func (in *ASMIASTConfig) DeepCopy() *ASMIASTConfig

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

func (*ASMIASTConfig) DeepCopyInto

func (in *ASMIASTConfig) DeepCopyInto(out *ASMIASTConfig)

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

type ASMSCAConfig

type ASMSCAConfig struct {
	// Enabled enables Software Composition Analysis (SCA).
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

func (*ASMSCAConfig) DeepCopy

func (in *ASMSCAConfig) DeepCopy() *ASMSCAConfig

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

func (*ASMSCAConfig) DeepCopyInto

func (in *ASMSCAConfig) DeepCopyInto(out *ASMSCAConfig)

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

type ASMThreatsConfig

type ASMThreatsConfig struct {
	// Enabled enables ASM App & API Protection.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

func (*ASMThreatsConfig) DeepCopy

func (in *ASMThreatsConfig) DeepCopy() *ASMThreatsConfig

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

func (*ASMThreatsConfig) DeepCopyInto

func (in *ASMThreatsConfig) DeepCopyInto(out *ASMThreatsConfig)

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

type AdmissionControllerFeatureConfig

type AdmissionControllerFeatureConfig struct {
	// Enabled enables the Admission Controller.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// MutateUnlabelled enables config injection without the need of pod label 'admission.datadoghq.com/enabled="true"'.
	// Default: false
	// +optional
	MutateUnlabelled *bool `json:"mutateUnlabelled,omitempty"`

	// ServiceName corresponds to the webhook service name.
	// +optional
	ServiceName *string `json:"serviceName,omitempty"`

	// AgentCommunicationMode corresponds to the mode used by the Datadog application libraries to communicate with the Agent.
	// It can be "hostip", "service", or "socket".
	// +optional
	AgentCommunicationMode *string `json:"agentCommunicationMode,omitempty"`

	// FailurePolicy determines how unrecognized and timeout errors are handled.
	// +optional
	FailurePolicy *string `json:"failurePolicy,omitempty"`

	// WebhookName is a custom name for the MutatingWebhookConfiguration.
	// Default: "datadog-webhook"
	// +optional
	WebhookName *string `json:"webhookName,omitempty"`

	// AgentSidecarInjection contains Agent sidecar injection configurations.
	// +optional
	AgentSidecarInjection *AgentSidecarInjectionConfig `json:"agentSidecarInjection,omitempty"`

	// Registry defines an image registry for the admission controller.
	// +optional
	Registry *string `json:"registry,omitempty"`

	// CWSInstrumentation holds the CWS Instrumentation endpoint configuration
	// +optional
	CWSInstrumentation *CWSInstrumentationConfig `json:"cwsInstrumentation,omitempty"`
}

AdmissionControllerFeatureConfig contains the Admission Controller feature configuration. The Admission Controller runs in the Cluster Agent.

func (*AdmissionControllerFeatureConfig) DeepCopy

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

func (*AdmissionControllerFeatureConfig) DeepCopyInto

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

type AgentConfigFileName

type AgentConfigFileName string

AgentConfigFileName is the list of known Agent config files

const (
	// AgentGeneralConfigFile is the name of the main Agent config file
	AgentGeneralConfigFile AgentConfigFileName = "datadog.yaml"
	// SystemProbeConfigFile is the name of the of System Probe config file
	SystemProbeConfigFile AgentConfigFileName = "system-probe.yaml"
	// SecurityAgentConfigFile is the name of the Security Agent config file
	SecurityAgentConfigFile AgentConfigFileName = "security-agent.yaml"
	// ClusterAgentConfigFile is the name of the Cluster Agent config file
	ClusterAgentConfigFile AgentConfigFileName = "datadog-cluster.yaml"
)

type AgentImageConfig added in v1.10.0

type AgentImageConfig struct {
	// Define the image to use:
	// Use "gcr.io/datadoghq/agent:latest" for Datadog Agent 7.
	// Use "datadog/dogstatsd:latest" for standalone Datadog Agent DogStatsD 7.
	// Use "gcr.io/datadoghq/cluster-agent:latest" for Datadog Cluster Agent.
	// Use "agent" with the registry and tag configurations for <registry>/agent:<tag>.
	// Use "cluster-agent" with the registry and tag configurations for <registry>/cluster-agent:<tag>.
	// If the name is the full image string—`<name>:<tag>` or `<registry>/<name>:<tag>`, then `tag`, `jmxEnabled`,
	// and `global.registry` values are ignored.
	// Otherwise, image string is created by overriding default settings with supplied `name`, `tag`, and `jmxEnabled` values;
	// image string is created using default registry unless `global.registry` is configured.
	Name string `json:"name,omitempty"`

	// Define the image tag to use.
	// To be used if the Name field does not correspond to a full image string.
	// +optional
	Tag string `json:"tag,omitempty"`

	// Define whether the Agent image should support JMX.
	// To be used if the Name field does not correspond to a full image string.
	// +optional
	JMXEnabled bool `json:"jmxEnabled,omitempty"`

	// The Kubernetes pull policy:
	// Use Always, Never, or IfNotPresent.
	PullPolicy *corev1.PullPolicy `json:"pullPolicy,omitempty"`

	// It is possible to specify Docker registry credentials.
	// See https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
	// +optional
	PullSecrets *[]corev1.LocalObjectReference `json:"pullSecrets,omitempty"`
}

AgentImageConfig defines the agent container image config. +kubebuilder:object:generate=true

func (*AgentImageConfig) DeepCopy added in v1.10.0

func (in *AgentImageConfig) DeepCopy() *AgentImageConfig

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

func (*AgentImageConfig) DeepCopyInto added in v1.10.0

func (in *AgentImageConfig) DeepCopyInto(out *AgentImageConfig)

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

type AgentSidecarInjectionConfig

type AgentSidecarInjectionConfig struct {
	// Enabled enables Sidecar injections.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled"`

	// ClusterAgentCommunicationEnabled enables communication between Agent sidecars and the Cluster Agent.
	// Default : true
	// +optional
	ClusterAgentCommunicationEnabled *bool `json:"clusterAgentCommunicationEnabled,omitempty"`

	// Provider is used to add infrastructure provider-specific configurations to the Agent sidecar.
	// Currently only "fargate" is supported.
	// To use the feature in other environments (including local testing) omit the config.
	// See also: https://docs.datadoghq.com/integrations/eks_fargate
	// +optional
	Provider *string `json:"provider,omitempty"`

	// Registry overrides the default registry for the sidecar Agent.
	// +optional
	Registry *string `json:"registry,omitempty"`

	// Image overrides the default Agent image name and tag for the Agent sidecar.
	// +optional
	Image *AgentImageConfig `json:"image,omitempty"`

	// Selectors define the pod selector for sidecar injection. Only one rule is supported.
	// +optional
	// +listType=atomic
	Selectors []*Selector `json:"selectors,omitempty"`

	// Profiles define the sidecar configuration override. Only one profile is supported.
	// +optional
	// +listType=atomic
	Profiles []*Profile `json:"profiles,omitempty"`
}

func (*AgentSidecarInjectionConfig) DeepCopy

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

func (*AgentSidecarInjectionConfig) DeepCopyInto

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

type AutoscalingFeatureConfig

type AutoscalingFeatureConfig struct {
	// Workload contains the configuration for the workload autoscaling product.
	Workload *WorkloadAutoscalingFeatureConfig `json:"workload,omitempty"`
}

AutoscalingFeatureConfig contains the Autoscaling product configuration.

func (*AutoscalingFeatureConfig) DeepCopy

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

func (*AutoscalingFeatureConfig) DeepCopyInto

func (in *AutoscalingFeatureConfig) DeepCopyInto(out *AutoscalingFeatureConfig)

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

type CSPMFeatureConfig

type CSPMFeatureConfig struct {
	// Enabled enables Cloud Security Posture Management.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// CheckInterval defines the check interval.
	// +optional
	CheckInterval *metav1.Duration `json:"checkInterval,omitempty"`

	// CustomBenchmarks contains CSPM benchmarks.
	// The content of the ConfigMap will be merged with the benchmarks bundled with the agent.
	// Any benchmarks with the same name as those existing in the agent will take precedence.
	// +optional
	CustomBenchmarks *CustomConfig `json:"customBenchmarks,omitempty"`

	// HostBenchmarks contains configuration for host benchmarks.
	// +optional
	HostBenchmarks *CSPMHostBenchmarksConfig `json:"hostBenchmarks,omitempty"`
}

CSPMFeatureConfig contains CSPM (Cloud Security Posture Management) configuration. CSPM runs in the Security Agent and Cluster Agent.

func (*CSPMFeatureConfig) DeepCopy

func (in *CSPMFeatureConfig) DeepCopy() *CSPMFeatureConfig

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

func (*CSPMFeatureConfig) DeepCopyInto

func (in *CSPMFeatureConfig) DeepCopyInto(out *CSPMFeatureConfig)

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

type CSPMHostBenchmarksConfig

type CSPMHostBenchmarksConfig struct {
	// Enabled enables host benchmarks.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

CSPMHostBenchmarksConfig contains configuration for host benchmarks. +k8s:openapi-gen=true

func (*CSPMHostBenchmarksConfig) DeepCopy

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

func (*CSPMHostBenchmarksConfig) DeepCopyInto

func (in *CSPMHostBenchmarksConfig) DeepCopyInto(out *CSPMHostBenchmarksConfig)

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

type CWSFeatureConfig

type CWSFeatureConfig struct {
	// Enabled enables Cloud Workload Security.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// SyscallMonitorEnabled enables Syscall Monitoring (recommended for troubleshooting only).
	// Default: false
	// +optional
	SyscallMonitorEnabled *bool `json:"syscallMonitorEnabled,omitempty"`

	Network             *CWSNetworkConfig             `json:"network,omitempty"`
	SecurityProfiles    *CWSSecurityProfilesConfig    `json:"securityProfiles,omitempty"`
	RemoteConfiguration *CWSRemoteConfigurationConfig `json:"remoteConfiguration,omitempty"`

	// CustomPolicies contains security policies.
	// The content of the ConfigMap will be merged with the policies bundled with the agent.
	// Any policies with the same name as those existing in the agent will take precedence.
	// +optional
	CustomPolicies *CustomConfig `json:"customPolicies,omitempty"`
}

CWSFeatureConfig contains CWS (Cloud Workload Security) configuration. CWS runs in the Security Agent.

func (*CWSFeatureConfig) DeepCopy

func (in *CWSFeatureConfig) DeepCopy() *CWSFeatureConfig

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

func (*CWSFeatureConfig) DeepCopyInto

func (in *CWSFeatureConfig) DeepCopyInto(out *CWSFeatureConfig)

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

type CWSInstrumentationConfig

type CWSInstrumentationConfig struct {
	// Enable the CWS Instrumentation admission controller endpoint.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Mode defines the behavior of the CWS Instrumentation endpoint, and can be either "init_container" or "remote_copy".
	// Default: "remote_copy"
	// +optional
	Mode *string `json:"mode,omitempty"`
}

CWSInstrumentationConfig contains the configuration of the CWS Instrumentation admission controller endpoint.

func (*CWSInstrumentationConfig) DeepCopy

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

func (*CWSInstrumentationConfig) DeepCopyInto

func (in *CWSInstrumentationConfig) DeepCopyInto(out *CWSInstrumentationConfig)

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

type CWSNetworkConfig

type CWSNetworkConfig struct {
	// Enabled enables Cloud Workload Security Network detections.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

func (*CWSNetworkConfig) DeepCopy

func (in *CWSNetworkConfig) DeepCopy() *CWSNetworkConfig

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

func (*CWSNetworkConfig) DeepCopyInto

func (in *CWSNetworkConfig) DeepCopyInto(out *CWSNetworkConfig)

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

type CWSRemoteConfigurationConfig

type CWSRemoteConfigurationConfig struct {
	// Enabled enables Remote Configuration for Cloud Workload Security.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

func (*CWSRemoteConfigurationConfig) DeepCopy

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

func (*CWSRemoteConfigurationConfig) DeepCopyInto

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

type CWSSecurityProfilesConfig

type CWSSecurityProfilesConfig struct {
	// Enabled enables Security Profiles collection for Cloud Workload Security.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

func (*CWSSecurityProfilesConfig) DeepCopy

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

func (*CWSSecurityProfilesConfig) DeepCopyInto

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

type ClusterChecksFeatureConfig

type ClusterChecksFeatureConfig struct {
	// Enables Cluster Checks scheduling in the Cluster Agent.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Enabled enables Cluster Checks Runners to run all Cluster Checks.
	// Default: false
	// +optional
	UseClusterChecksRunners *bool `json:"useClusterChecksRunners,omitempty"`
}

ClusterChecksFeatureConfig contains the Cluster Checks feature configuration. Cluster Checks are picked up and scheduled by the Cluster Agent. Cluster Checks Runners are Agents dedicated to running Cluster Checks dispatched by the Cluster Agent. (If Cluster Checks Runners are not activated, checks are dispatched to Node Agents).

func (*ClusterChecksFeatureConfig) DeepCopy

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

func (*ClusterChecksFeatureConfig) DeepCopyInto

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

type ComponentName

type ComponentName string

ComponentName is the name of a Deployment Component

const (
	// NodeAgentComponentName is the name of the Datadog Node Agent
	NodeAgentComponentName ComponentName = "nodeAgent"
	// ClusterAgentComponentName is the name of the Cluster Agent
	ClusterAgentComponentName ComponentName = "clusterAgent"
	// ClusterChecksRunnerComponentName is the name of the Cluster Check Runner
	ClusterChecksRunnerComponentName ComponentName = "clusterChecksRunner"
)

type ConfigMapConfig added in v1.10.0

type ConfigMapConfig struct {
	// Name is the name of the ConfigMap.
	Name string `json:"name,omitempty"`

	// Items maps a ConfigMap data `key` to a file `path` mount.
	// +listType=map
	// +listMapKey=key
	// +optional
	Items []corev1.KeyToPath `json:"items,omitempty"`
}

ConfigMapConfig contains ConfigMap information used to store a configuration file. +kubebuilder:object:generate=true

func (*ConfigMapConfig) DeepCopy added in v1.10.0

func (in *ConfigMapConfig) DeepCopy() *ConfigMapConfig

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

func (*ConfigMapConfig) DeepCopyInto added in v1.10.0

func (in *ConfigMapConfig) DeepCopyInto(out *ConfigMapConfig)

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

type ContainerStrategyType

type ContainerStrategyType string
const (
	// OptimizedContainerStrategy indicates multiple Agent containers with one process per
	// container (default)
	OptimizedContainerStrategy ContainerStrategyType = "optimized"
	// SingleContainerStrategy indicates a single Agent container with multiple (unprivileged)
	// processes in one container
	SingleContainerStrategy ContainerStrategyType = "single"
)

type CustomConfig

type CustomConfig struct {
	// ConfigData corresponds to the configuration file content.
	ConfigData *string `json:"configData,omitempty"`

	// ConfigMap references an existing ConfigMap with the configuration file content.
	ConfigMap *ConfigMapConfig `json:"configMap,omitempty"`
}

CustomConfig provides a place for custom configuration of the Agent or Cluster Agent, corresponding to datadog.yaml, system-probe.yaml, security-agent.yaml or datadog-cluster.yaml. The configuration can be provided in the ConfigData field as raw data, or referenced in a ConfigMap. Note: `ConfigData` and `ConfigMap` cannot be set together. +k8s:openapi-gen=true

func (*CustomConfig) DeepCopy

func (in *CustomConfig) DeepCopy() *CustomConfig

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

func (*CustomConfig) DeepCopyInto

func (in *CustomConfig) DeepCopyInto(out *CustomConfig)

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

type DaemonSetStatus added in v1.10.0

type DaemonSetStatus struct {
	// Number of desired pods in the DaemonSet.
	Desired int32 `json:"desired"`

	// Number of current pods in the DaemonSet.
	Current int32 `json:"current"`

	// Number of ready pods in the DaemonSet.
	Ready int32 `json:"ready"`

	// Number of available pods in the DaemonSet.
	Available int32 `json:"available"`

	// Number of up to date pods in the DaemonSet.
	UpToDate int32 `json:"upToDate"`

	// LastUpdate is the last time the status was updated.
	LastUpdate *metav1.Time `json:"lastUpdate,omitempty"`

	// CurrentHash is the stored hash of the DaemonSet.
	CurrentHash string `json:"currentHash,omitempty"`

	// Status corresponds to the DaemonSet computed status.
	Status string `json:"status,omitempty"`

	// State corresponds to the DaemonSet state.
	State string `json:"state,omitempty"`

	// DaemonsetName corresponds to the name of the created DaemonSet.
	DaemonsetName string `json:"daemonsetName,omitempty"`
}

DaemonSetStatus defines the observed state of Agent running as DaemonSet. +k8s:openapi-gen=true +kubebuilder:object:generate=true

func UpdateCombinedDaemonSetStatus

func UpdateCombinedDaemonSetStatus(dsStatus []*DaemonSetStatus) *DaemonSetStatus

UpdateCombinedDaemonSetStatus combines the status of multiple DaemonSetStatus

func UpdateDaemonSetStatus

func UpdateDaemonSetStatus(ds *appsv1.DaemonSet, dsStatus []*DaemonSetStatus, updateTime *metav1.Time) []*DaemonSetStatus

UpdateDaemonSetStatus updates a daemonset's DaemonSetStatus

func UpdateExtendedDaemonSetStatus

func UpdateExtendedDaemonSetStatus(eds *edsdatadoghqv1alpha1.ExtendedDaemonSet, dsStatus []*DaemonSetStatus, updateTime *metav1.Time) []*DaemonSetStatus

UpdateExtendedDaemonSetStatus updates an ExtendedDaemonSet's DaemonSetStatus

func (*DaemonSetStatus) DeepCopy added in v1.10.0

func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus

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

func (*DaemonSetStatus) DeepCopyInto added in v1.10.0

func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus)

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

type DatadogAgent

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

	Spec   DatadogAgentSpec   `json:"spec,omitempty"`
	Status DatadogAgentStatus `json:"status,omitempty"`
}

DatadogAgent Deployment with the Datadog Operator. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:path=datadogagents,shortName=dd +kubebuilder:printcolumn:name="agent",type="string",JSONPath=".status.agent.status" +kubebuilder:printcolumn:name="cluster-agent",type="string",JSONPath=".status.clusterAgent.status" +kubebuilder:printcolumn:name="cluster-checks-runner",type="string",JSONPath=".status.clusterChecksRunner.status" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp" +k8s:openapi-gen=true +genclient

func (*DatadogAgent) DeepCopy

func (in *DatadogAgent) DeepCopy() *DatadogAgent

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

func (*DatadogAgent) DeepCopyInto

func (in *DatadogAgent) DeepCopyInto(out *DatadogAgent)

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

func (*DatadogAgent) DeepCopyObject

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

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

func (*DatadogAgent) Hub

func (*DatadogAgent) Hub()

Hub defines this CRD version as being the Hub version

func (*DatadogAgent) SetupWebhookWithManager

func (r *DatadogAgent) SetupWebhookWithManager(mgr ctrl.Manager) error

SetupWebhookWithManager starts the conversion webhook

type DatadogAgentComponentOverride

type DatadogAgentComponentOverride struct {
	// Name overrides the default name for the resource
	// +optional
	Name *string `json:"name,omitempty"`

	// Number of the replicas.
	// Not applicable for a DaemonSet/ExtendedDaemonSet deployment
	// +optional
	Replicas *int32 `json:"replicas,omitempty"`

	// Set CreateRbac to false to prevent automatic creation of Role/ClusterRole for this component
	// +optional
	CreateRbac *bool `json:"createRbac,omitempty"`

	// Sets the ServiceAccount used by this component.
	// Ignored if the field CreateRbac is true.
	// +optional
	ServiceAccountName *string `json:"serviceAccountName,omitempty"`

	// Sets the ServiceAccountAnnotations used by this component.
	// +optional
	ServiceAccountAnnotations map[string]string `json:"serviceAccountAnnotations,omitempty"`

	// The container image of the different components (Datadog Agent, Cluster Agent, Cluster Check Runner).
	// +optional
	Image *AgentImageConfig `json:"image,omitempty"`

	// Specify additional environment variables for all containers in this component
	// Priority is Container > Component.
	// See also: https://docs.datadoghq.com/agent/kubernetes/?tab=helm#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

	// EnvFrom specifies the ConfigMaps and Secrets to expose as environment variables.
	// Priority is env > envFrom.
	// +optional
	EnvFrom []corev1.EnvFromSource `json:"envFrom,omitempty"`

	// CustomConfiguration allows to specify custom configuration files for `datadog.yaml`, `datadog-cluster.yaml`, `security-agent.yaml`, and `system-probe.yaml`.
	// The content is merged with configuration generated by the Datadog Operator, with priority given to custom configuration.
	// WARNING: It is possible to override values set in the `DatadogAgent`.
	// +optional
	CustomConfigurations map[AgentConfigFileName]CustomConfig `json:"customConfigurations,omitempty"`

	// Confd configuration allowing to specify config files for custom checks placed under /etc/datadog-agent/conf.d/.
	// See https://docs.datadoghq.com/agent/guide/agent-configuration-files/?tab=agentv6 for more details.
	// +optional
	ExtraConfd *MultiCustomConfig `json:"extraConfd,omitempty"`

	// Checksd configuration allowing to specify custom checks placed under /etc/datadog-agent/checks.d/
	// See https://docs.datadoghq.com/agent/guide/agent-configuration-files/?tab=agentv6 for more details.
	// +optional
	ExtraChecksd *MultiCustomConfig `json:"extraChecksd,omitempty"`

	// Configure the basic configurations for each Agent container. Valid Agent container names are:
	// `agent`, `cluster-agent`, `init-config`, `init-volume`, `process-agent`, `seccomp-setup`,
	// `security-agent`, `system-probe`, `trace-agent`, and `all`.
	// Configuration under `all` applies to all configured containers.
	// +optional
	Containers map[common.AgentContainerName]*DatadogAgentGenericContainer `json:"containers,omitempty"`

	// Specify additional volumes in the different components (Datadog Agent, Cluster Agent, Cluster Check Runner).
	// +optional
	// +listType=map
	// +listMapKey=name
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// Pod-level SecurityContext.
	// +optional
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`

	// If specified, indicates the pod's priority. "system-node-critical" and "system-cluster-critical"
	// are two special keywords which indicate the highest priorities with the former being the highest priority.
	// Any other name must be defined by creating a PriorityClass object with that name. If not specified,
	// the pod priority is default, or zero if there is no default.
	PriorityClassName *string `json:"priorityClassName,omitempty"`

	// If specified, the pod's scheduling constraints.
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Set DNS policy for the pod.
	// Defaults to "ClusterFirst".
	// Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
	// DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
	// To have DNS options set along with hostNetwork, you have to specify DNS policy
	// explicitly to 'ClusterFirstWithHostNet'.
	// +optional
	DNSPolicy *corev1.DNSPolicy `json:"dnsPolicy,omitempty"`

	// Specifies the DNS parameters of a pod.
	// Parameters specified here will be merged to the generated DNS
	// configuration based on DNSPolicy.
	// +optional
	DNSConfig *corev1.PodDNSConfig `json:"dnsConfig,omitempty"`

	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	// +optional
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// The deployment strategy to use to replace existing pods with new ones.
	// +optional
	UpdateStrategy *common.UpdateStrategy `json:"updateStrategy,omitempty"`

	// Configure the component tolerations.
	// +optional
	// +listType=atomic
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Annotations provide annotations that are added to the different component (Datadog Agent, Cluster Agent, Cluster Check Runner) pods.
	Annotations map[string]string `json:"annotations,omitempty"`

	// AdditionalLabels provide labels that are added to the different component (Datadog Agent, Cluster Agent, Cluster Check Runner) pods.
	Labels map[string]string `json:"labels,omitempty"`

	// Host networking requested for this pod. Use the host's network namespace.
	// +optional
	HostNetwork *bool `json:"hostNetwork,omitempty"`

	// Use the host's PID namespace.
	// +optional
	HostPID *bool `json:"hostPID,omitempty"`

	// Disabled force disables a component.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`
}

DatadogAgentComponentOverride is the generic description equivalent to a subset of the PodTemplate for a component.

func (*DatadogAgentComponentOverride) DeepCopy

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

func (*DatadogAgentComponentOverride) DeepCopyInto

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

type DatadogAgentGenericContainer

type DatadogAgentGenericContainer struct {
	// Name of the container that is overridden
	//+optional
	Name *string `json:"name,omitempty"`

	// LogLevel sets logging verbosity (overrides global setting).
	// Valid log levels are: trace, debug, info, warn, error, critical, and off.
	// Default: 'info'
	// +optional
	LogLevel *string `json:"logLevel,omitempty"`

	// Specify additional environment variables in the container.
	// See also: https://docs.datadoghq.com/agent/kubernetes/?tab=helm#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Specify additional volume mounts in the container.
	// +optional
	// +listType=map
	// +listMapKey=name
	// +listMapKey=mountPath
	VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`

	// Specify the Request and Limits of the pods
	// To get guaranteed QoS class, specify requests and limits equal.
	// See also: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

	// Command allows the specification of a custom entrypoint for container
	// +listType=atomic
	Command []string `json:"command,omitempty"`

	// Args allows the specification of extra args to the `Command` parameter
	// +listType=atomic
	Args []string `json:"args,omitempty"`

	// HealthPort of the container for the internal liveness probe.
	// Must be the same as the Liveness/Readiness probes.
	// +optional
	HealthPort *int32 `json:"healthPort,omitempty"`

	// Configure the Readiness Probe of the container
	// +optional
	ReadinessProbe *corev1.Probe `json:"readinessProbe,omitempty"`

	// Configure the Liveness Probe of the container
	// +optional
	LivenessProbe *corev1.Probe `json:"livenessProbe,omitempty"`

	// Container-level SecurityContext.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`

	// Seccomp configurations to override Operator actions. For all other Seccomp Profile manipulation,
	// use SecurityContext.
	// +optional
	SeccompConfig *SeccompConfig `json:"seccompConfig,omitempty"`

	// AppArmorProfileName specifies an apparmor profile.
	// +optional
	AppArmorProfileName *string `json:"appArmorProfileName,omitempty"`
}

DatadogAgentGenericContainer is the generic structure describing any container's common configuration. +k8s:openapi-gen=true

func (*DatadogAgentGenericContainer) DeepCopy

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

func (*DatadogAgentGenericContainer) DeepCopyInto

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

type DatadogAgentList

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

DatadogAgentList contains a list of DatadogAgent.

func (*DatadogAgentList) DeepCopy

func (in *DatadogAgentList) DeepCopy() *DatadogAgentList

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

func (*DatadogAgentList) DeepCopyInto

func (in *DatadogAgentList) DeepCopyInto(out *DatadogAgentList)

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

func (*DatadogAgentList) DeepCopyObject

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

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

type DatadogAgentSpec

type DatadogAgentSpec struct {
	// Features running on the Agent and Cluster Agent
	// +optional
	Features *DatadogFeatures `json:"features,omitempty"`

	// Global settings to configure the agents
	// +optional
	Global *GlobalConfig `json:"global,omitempty"`

	// Override the default configurations of the agents
	// +optional
	Override map[ComponentName]*DatadogAgentComponentOverride `json:"override,omitempty"`
}

DatadogAgentSpec defines the desired state of DatadogAgent

func (*DatadogAgentSpec) DeepCopy

func (in *DatadogAgentSpec) DeepCopy() *DatadogAgentSpec

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

func (*DatadogAgentSpec) DeepCopyInto

func (in *DatadogAgentSpec) DeepCopyInto(out *DatadogAgentSpec)

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

type DatadogAgentState

type DatadogAgentState string

DatadogAgentState type representing the deployment state of the different Agent components.

const (
	// DatadogAgentStateProgressing the deployment is progressing.
	DatadogAgentStateProgressing DatadogAgentState = "Progressing"
	// DatadogAgentStateRunning the deployment is running properly.
	DatadogAgentStateRunning DatadogAgentState = "Running"
	// DatadogAgentStateUpdating the deployment is currently under a rolling update.
	DatadogAgentStateUpdating DatadogAgentState = "Updating"
	// DatadogAgentStateCanary the deployment is currently under a canary testing (EDS only).
	DatadogAgentStateCanary DatadogAgentState = "Canary"
	// DatadogAgentStateFailed the current state of the deployment is considered as Failed.
	DatadogAgentStateFailed DatadogAgentState = "Failed"
)

type DatadogAgentStatus

type DatadogAgentStatus struct {
	// Conditions Represents the latest available observations of a DatadogAgent's current state.
	// +optional
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions"`
	// The actual state of the Agent as a daemonset or an extended daemonset.
	// +optional
	// +listType=atomic
	AgentList []*DaemonSetStatus `json:"agentList,omitempty"`
	// The combined actual state of all Agents as daemonsets or extended daemonsets.
	// +optional
	Agent *DaemonSetStatus `json:"agent,omitempty"`
	// The actual state of the Cluster Agent as a deployment.
	// +optional
	ClusterAgent *DeploymentStatus `json:"clusterAgent,omitempty"`
	// The actual state of the Cluster Checks Runner as a deployment.
	// +optional
	ClusterChecksRunner *DeploymentStatus `json:"clusterChecksRunner,omitempty"`
	// RemoteConfigConfiguration stores the configuration received from RemoteConfig.
	// +optional
	RemoteConfigConfiguration *RemoteConfigConfiguration `json:"remoteConfigConfiguration,omitempty"`
}

DatadogAgentStatus defines the observed state of DatadogAgent. +k8s:openapi-gen=true

func (*DatadogAgentStatus) DeepCopy

func (in *DatadogAgentStatus) DeepCopy() *DatadogAgentStatus

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

func (*DatadogAgentStatus) DeepCopyInto

func (in *DatadogAgentStatus) DeepCopyInto(out *DatadogAgentStatus)

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

type DatadogCredentials

type DatadogCredentials struct {
	// APIKey configures your Datadog API key.
	// See also: https://app.datadoghq.com/account/settings#agent/kubernetes
	APIKey *string `json:"apiKey,omitempty"`

	// APISecret references an existing Secret which stores the API key instead of creating a new one.
	// If set, this parameter takes precedence over "APIKey".
	// +optional
	APISecret *SecretConfig `json:"apiSecret,omitempty"`

	// AppKey configures your Datadog application key.
	// If you are using features.externalMetricsServer.enabled = true, you must set
	// a Datadog application key for read access to your metrics.
	// +optional
	AppKey *string `json:"appKey,omitempty"`

	// AppSecret references an existing Secret which stores the application key instead of creating a new one.
	// If set, this parameter takes precedence over "AppKey".
	// +optional
	AppSecret *SecretConfig `json:"appSecret,omitempty"`
}

DatadogCredentials is a generic structure that holds credentials to access Datadog. +k8s:openapi-gen=true

func (*DatadogCredentials) DeepCopy

func (in *DatadogCredentials) DeepCopy() *DatadogCredentials

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

func (*DatadogCredentials) DeepCopyInto

func (in *DatadogCredentials) DeepCopyInto(out *DatadogCredentials)

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

type DatadogFeatures

type DatadogFeatures struct {

	// LogCollection configuration.
	LogCollection *LogCollectionFeatureConfig `json:"logCollection,omitempty"`
	// LiveProcessCollection configuration.
	LiveProcessCollection *LiveProcessCollectionFeatureConfig `json:"liveProcessCollection,omitempty"`
	// LiveContainerCollection configuration.
	LiveContainerCollection *LiveContainerCollectionFeatureConfig `json:"liveContainerCollection,omitempty"`
	// ProcessDiscovery configuration.
	ProcessDiscovery *ProcessDiscoveryFeatureConfig `json:"processDiscovery,omitempty"`
	// OOMKill configuration.
	OOMKill *OOMKillFeatureConfig `json:"oomKill,omitempty"`
	// TCPQueueLength configuration.
	TCPQueueLength *TCPQueueLengthFeatureConfig `json:"tcpQueueLength,omitempty"`
	// EBPFCheck configuration.
	EBPFCheck *EBPFCheckFeatureConfig `json:"ebpfCheck,omitempty"`
	// APM (Application Performance Monitoring) configuration.
	APM *APMFeatureConfig `json:"apm,omitempty"`
	// ASM (Application Security Management) configuration.
	ASM *ASMFeatureConfig `json:"asm,omitempty"`
	// CSPM (Cloud Security Posture Management) configuration.
	CSPM *CSPMFeatureConfig `json:"cspm,omitempty"`
	// CWS (Cloud Workload Security) configuration.
	CWS *CWSFeatureConfig `json:"cws,omitempty"`
	// NPM (Network Performance Monitoring) configuration.
	NPM *NPMFeatureConfig `json:"npm,omitempty"`
	// USM (Universal Service Monitoring) configuration.
	USM *USMFeatureConfig `json:"usm,omitempty"`
	// Dogstatsd configuration.
	Dogstatsd *DogstatsdFeatureConfig `json:"dogstatsd,omitempty"`
	// OTLP ingest configuration
	OTLP *OTLPFeatureConfig `json:"otlp,omitempty"`
	// Remote Configuration configuration.
	RemoteConfiguration *RemoteConfigurationFeatureConfig `json:"remoteConfiguration,omitempty"`
	// SBOM collection configuration.
	SBOM *SBOMFeatureConfig `json:"sbom,omitempty"`

	// EventCollection configuration.
	EventCollection *EventCollectionFeatureConfig `json:"eventCollection,omitempty"`
	// OrchestratorExplorer check configuration.
	OrchestratorExplorer *OrchestratorExplorerFeatureConfig `json:"orchestratorExplorer,omitempty"`
	// KubeStateMetricsCore check configuration.
	KubeStateMetricsCore *KubeStateMetricsCoreFeatureConfig `json:"kubeStateMetricsCore,omitempty"`
	// AdmissionController configuration.
	AdmissionController *AdmissionControllerFeatureConfig `json:"admissionController,omitempty"`
	// ExternalMetricsServer configuration.
	ExternalMetricsServer *ExternalMetricsServerFeatureConfig `json:"externalMetricsServer,omitempty"`
	// Autoscaling configuration.
	Autoscaling *AutoscalingFeatureConfig `json:"autoscaling,omitempty"`
	// ClusterChecks configuration.
	ClusterChecks *ClusterChecksFeatureConfig `json:"clusterChecks,omitempty"`
	// PrometheusScrape configuration.
	PrometheusScrape *PrometheusScrapeFeatureConfig `json:"prometheusScrape,omitempty"`
	// HelmCheck configuration.
	HelmCheck *HelmCheckFeatureConfig `json:"helmCheck,omitempty"`
}

DatadogFeatures are features running on the Agent and Cluster Agent. +k8s:openapi-gen=true

func (*DatadogFeatures) DeepCopy

func (in *DatadogFeatures) DeepCopy() *DatadogFeatures

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

func (*DatadogFeatures) DeepCopyInto

func (in *DatadogFeatures) DeepCopyInto(out *DatadogFeatures)

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

type DeploymentStatus added in v1.10.0

type DeploymentStatus struct {
	// Total number of non-terminated pods targeted by this Deployment (their labels match the selector).
	// +optional
	Replicas int32 `json:"replicas,omitempty"`

	// Total number of non-terminated pods targeted by this Deployment that have the desired template spec.
	// +optional
	UpdatedReplicas int32 `json:"updatedReplicas,omitempty"`

	// Total number of ready pods targeted by this Deployment.
	// +optional
	ReadyReplicas int32 `json:"readyReplicas,omitempty"`

	// Total number of available pods (ready for at least minReadySeconds) targeted by this Deployment.
	// +optional
	AvailableReplicas int32 `json:"availableReplicas,omitempty"`

	// Total number of unavailable pods targeted by this Deployment. This is the total number of
	// pods that are still required for the Deployment to have 100% available capacity. They may
	// either be pods that are running but not yet available or pods that still have not been created.
	// +optional
	UnavailableReplicas int32 `json:"unavailableReplicas,omitempty"`

	// LastUpdate is the last time the status was updated.
	LastUpdate *metav1.Time `json:"lastUpdate,omitempty"`

	// CurrentHash is the stored hash of the Deployment.
	CurrentHash string `json:"currentHash,omitempty"`

	// GeneratedToken corresponds to the generated token if any token was provided in the Credential configuration when ClusterAgent is
	// enabled.
	// +optional
	GeneratedToken string `json:"generatedToken,omitempty"`

	// Status corresponds to the Deployment computed status.
	Status string `json:"status,omitempty"`

	// State corresponds to the Deployment state.
	State string `json:"state,omitempty"`

	// DeploymentName corresponds to the name of the Deployment.
	DeploymentName string `json:"deploymentName,omitempty"`
}

DeploymentStatus type representing a Deployment status. +k8s:openapi-gen=true +kubebuilder:object:generate=true

func UpdateDeploymentStatus

func UpdateDeploymentStatus(dep *appsv1.Deployment, depStatus *DeploymentStatus, updateTime *metav1.Time) *DeploymentStatus

UpdateDeploymentStatus updates a deployment's DeploymentStatus

func (*DeploymentStatus) DeepCopy added in v1.10.0

func (in *DeploymentStatus) DeepCopy() *DeploymentStatus

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

func (*DeploymentStatus) DeepCopyInto added in v1.10.0

func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus)

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

type DogstatsdFeatureConfig

type DogstatsdFeatureConfig struct {
	// OriginDetectionEnabled enables origin detection for container tagging.
	// See also: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/#using-origin-detection-for-container-tagging
	// +optional
	OriginDetectionEnabled *bool `json:"originDetectionEnabled,omitempty"`

	// TagCardinality configures tag cardinality for the metrics collected using origin detection (`low`, `orchestrator` or `high`).
	// See also: https://docs.datadoghq.com/getting_started/tagging/assigning_tags/?tab=containerizedenvironments#environment-variables
	// Cardinality default: low
	// +optional
	TagCardinality *string `json:"tagCardinality,omitempty"`

	// HostPortConfig contains host port configuration.
	// Enabled Default: false
	// Port Default: 8125
	// +optional
	HostPortConfig *HostPortConfig `json:"hostPortConfig,omitempty"`

	// UnixDomainSocketConfig contains socket configuration.
	// See also: https://docs.datadoghq.com/agent/kubernetes/apm/?tab=helm#agent-environment-variables
	// Enabled Default: true
	// Path Default: `/var/run/datadog/dsd.socket`
	// +optional
	UnixDomainSocketConfig *UnixDomainSocketConfig `json:"unixDomainSocketConfig,omitempty"`

	// Configure the Dogstasd Mapper Profiles.
	// Can be passed as raw data or via a json encoded string in a config map.
	// See also: https://docs.datadoghq.com/developers/dogstatsd/dogstatsd_mapper/
	// +optional
	MapperProfiles *CustomConfig `json:"mapperProfiles,omitempty"`
}

DogstatsdFeatureConfig contains the Dogstatsd configuration parameters. +k8s:openapi-gen=true

func (*DogstatsdFeatureConfig) DeepCopy

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

func (*DogstatsdFeatureConfig) DeepCopyInto

func (in *DogstatsdFeatureConfig) DeepCopyInto(out *DogstatsdFeatureConfig)

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

type EBPFCheckFeatureConfig

type EBPFCheckFeatureConfig struct {
	// Enables the eBPF check.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

EBPFCheckFeatureConfig configures the eBPF check feature.

func (*EBPFCheckFeatureConfig) DeepCopy

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

func (*EBPFCheckFeatureConfig) DeepCopyInto

func (in *EBPFCheckFeatureConfig) DeepCopyInto(out *EBPFCheckFeatureConfig)

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

type Endpoint

type Endpoint struct {
	// URL defines the endpoint URL.
	URL *string `json:"url,omitempty"`

	// Credentials defines the Datadog credentials used to submit data to/query data from Datadog.
	Credentials *DatadogCredentials `json:"credentials,omitempty"`
}

Endpoint configures an endpoint and its associated Datadog credentials.

func (*Endpoint) DeepCopy

func (in *Endpoint) DeepCopy() *Endpoint

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

func (*Endpoint) DeepCopyInto

func (in *Endpoint) DeepCopyInto(out *Endpoint)

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

type EventCollectionFeatureConfig

type EventCollectionFeatureConfig struct {
	// CollectKubernetesEvents enables Kubernetes event collection.
	// Default: true
	CollectKubernetesEvents *bool `json:"collectKubernetesEvents,omitempty"`

	// UnbundleEvents enables collection of Kubernetes events as individual events.
	// Default: false
	// +optional
	UnbundleEvents *bool `json:"unbundleEvents,omitempty"`

	// CollectedEventTypes defines the list of events to collect when UnbundleEvents is enabled.
	// Default:
	// [
	// {"kind":"Pod","reasons":["Failed","BackOff","Unhealthy","FailedScheduling","FailedMount","FailedAttachVolume"]},
	// {"kind":"Node","reasons":["TerminatingEvictedPod","NodeNotReady","Rebooted","HostPortConflict"]},
	// {"kind":"CronJob","reasons":["SawCompletedJob"]}
	// ]
	// +optional
	// +listType=atomic
	CollectedEventTypes []EventTypes `json:"collectedEventTypes,omitempty"`
}

EventCollectionFeatureConfig contains the Event Collection configuration. +k8s:openapi-gen=true

func (*EventCollectionFeatureConfig) DeepCopy

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

func (*EventCollectionFeatureConfig) DeepCopyInto

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

type EventTypes

type EventTypes struct {
	// Kind is the kind of event to collect. (ex: Pod, Node, CronJob)
	Kind string `json:"kind"`

	// Reasons is a list of event reasons to collect. (ex: Failed, BackOff, Unhealthy)
	// +listType=atomic
	Reasons []string `json:"reasons"`
}

EventTypes defines the kind and reasons of events to collect.

func (*EventTypes) DeepCopy

func (in *EventTypes) DeepCopy() *EventTypes

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

func (*EventTypes) DeepCopyInto

func (in *EventTypes) DeepCopyInto(out *EventTypes)

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

type ExternalMetricsServerFeatureConfig

type ExternalMetricsServerFeatureConfig struct {
	// Enabled enables the External Metrics Server.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// RegisterAPIService registers the External Metrics endpoint as an APIService
	// Default: true
	// +optional
	RegisterAPIService *bool `json:"registerAPIService,omitempty"`

	// WPAController enables the informer and controller of the Watermark Pod Autoscaler.
	// NOTE: The Watermark Pod Autoscaler controller needs to be installed.
	// See also: https://github.com/DataDog/watermarkpodautoscaler.
	// Default: false
	// +optional
	WPAController *bool `json:"wpaController,omitempty"`

	// UseDatadogMetrics enables usage of the DatadogMetrics CRD (allowing one to scale on arbitrary Datadog metric queries).
	// Default: true
	// +optional
	UseDatadogMetrics *bool `json:"useDatadogMetrics,omitempty"`

	// Port specifies the metricsProvider External Metrics Server service port.
	// Default: 8443
	// +optional
	Port *int32 `json:"port,omitempty"`

	// Override the API endpoint for the External Metrics Server.
	// URL Default: "https://app.datadoghq.com".
	// +optional
	Endpoint *Endpoint `json:"endpoint,omitempty"`
}

ExternalMetricsServerFeatureConfig contains the External Metrics Server feature configuration. The External Metrics Server runs in the Cluster Agent.

func (*ExternalMetricsServerFeatureConfig) DeepCopy

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

func (*ExternalMetricsServerFeatureConfig) DeepCopyInto

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

type FIPSConfig

type FIPSConfig struct {
	// Enable FIPS sidecar.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// The container image of the FIPS sidecar.
	// +optional
	Image *AgentImageConfig `json:"image,omitempty"`
	// Set the local IP address.
	// Default: `127.0.0.1`
	// +optional
	LocalAddress *string `json:"localAddress,omitempty"`
	// Port specifies which port is used by the containers to communicate to the FIPS sidecar.
	// Default: 9803
	// +optional
	Port *int32 `json:"port,omitempty"`
	// PortRange specifies the number of ports used.
	// Default: 15
	// +optional
	PortRange *int32 `json:"portRange,omitempty"`
	// Resources is the requests and limits for the FIPS sidecar container.
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// UseHTTPS enables HTTPS.
	// Default: false
	// +optional
	UseHTTPS *bool `json:"useHTTPS,omitempty"`
	// CustomFIPSConfig configures a custom configMap to provide the FIPS configuration.
	// Specify custom contents for the FIPS proxy sidecar container config
	// (/etc/datadog-fips-proxy/datadog-fips-proxy.cfg). If empty, the default FIPS
	// proxy sidecar container config is used.
	// +optional
	CustomFIPSConfig *CustomConfig `json:"customFIPSConfig,omitempty"`
}

FIPSConfig contains the FIPS configuration. +k8s:openapi-gen=true

func (*FIPSConfig) DeepCopy

func (in *FIPSConfig) DeepCopy() *FIPSConfig

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

func (*FIPSConfig) DeepCopyInto

func (in *FIPSConfig) DeepCopyInto(out *FIPSConfig)

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

type GlobalConfig

type GlobalConfig struct {
	// Credentials defines the Datadog credentials used to submit data to/query data from Datadog.
	Credentials *DatadogCredentials `json:"credentials,omitempty"`

	// ClusterAgentToken is the token for communication between the NodeAgent and ClusterAgent.
	ClusterAgentToken *string `json:"clusterAgentToken,omitempty"`

	// ClusterAgentTokenSecret is the secret containing the Cluster Agent token.
	ClusterAgentTokenSecret *SecretConfig `json:"clusterAgentTokenSecret,omitempty"`

	// ClusterName sets a unique cluster name for the deployment to easily scope monitoring data in the Datadog app.
	// +optional
	ClusterName *string `json:"clusterName,omitempty"`

	// Site is the Datadog intake site Agent data are sent to.
	// Set to 'datadoghq.com' to send data to the US1 site (default).
	// Set to 'datadoghq.eu' to send data to the EU site.
	// Set to 'us3.datadoghq.com' to send data to the US3 site.
	// Set to 'us5.datadoghq.com' to send data to the US5 site.
	// Set to 'ddog-gov.com' to send data to the US1-FED site.
	// Set to 'ap1.datadoghq.com' to send data to the AP1 site.
	// Default: 'datadoghq.com'
	// +optional
	Site *string `json:"site,omitempty"`

	// Endpoint is the Datadog intake URL the Agent data are sent to.
	// Only set this option if you need the Agent to send data to a custom URL.
	// Overrides the site setting defined in `Site`.
	// +optional
	Endpoint *Endpoint `json:"endpoint,omitempty"`

	// Registry is the image registry to use for all Agent images.
	// Use 'public.ecr.aws/datadog' for AWS ECR.
	// Use 'datadoghq.azurecr.io' for Azure Container Registry.
	// Use 'gcr.io/datadoghq' for Google Container Registry.
	// Use 'eu.gcr.io/datadoghq' for Google Container Registry in the EU region.
	// Use 'asia.gcr.io/datadoghq' for Google Container Registry in the Asia region.
	// Use 'docker.io/datadog' for DockerHub.
	// Default: 'gcr.io/datadoghq'
	// +optional
	Registry *string `json:"registry,omitempty"`

	// LogLevel sets logging verbosity. This can be overridden by container.
	// Valid log levels are: trace, debug, info, warn, error, critical, and off.
	// Default: 'info'
	LogLevel *string `json:"logLevel,omitempty"`

	// Tags contains a list of tags to attach to every metric, event and service check collected.
	// Learn more about tagging: https://docs.datadoghq.com/tagging/
	// +optional
	// +listType=set
	Tags []string `json:"tags,omitempty"`

	//Env contains a list of environment variables that are set for all Agents.
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

	// OriginDetectionUnified defines the origin detection unified mechanism behavior.
	// +optional
	OriginDetectionUnified *OriginDetectionUnified `json:"originDetectionUnified,omitempty"`

	// Provide a mapping of Kubernetes Labels to Datadog Tags.
	// <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
	// +optional
	PodLabelsAsTags map[string]string `json:"podLabelsAsTags,omitempty"`

	// Provide a mapping of Kubernetes Annotations to Datadog Tags.
	// <KUBERNETES_ANNOTATIONS>: <DATADOG_TAG_KEY>
	// +optional
	PodAnnotationsAsTags map[string]string `json:"podAnnotationsAsTags,omitempty"`

	// Provide a mapping of Kubernetes Node Labels to Datadog Tags.
	// <KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
	// +optional
	NodeLabelsAsTags map[string]string `json:"nodeLabelsAsTags,omitempty"`

	// Provide a mapping of Kubernetes Namespace Labels to Datadog Tags.
	// <KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
	// +optional
	NamespaceLabelsAsTags map[string]string `json:"namespaceLabelsAsTags,omitempty"`

	// Provide a mapping of Kubernetes Namespace Annotations to Datadog Tags.
	// <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
	// +optional
	NamespaceAnnotationsAsTags map[string]string `json:"namespaceAnnotationsAsTags,omitempty"`

	// Provide a mapping of Kubernetes Resource Groups to labels mapping to Datadog Tags.
	// <KUBERNETES_RESOURCE_GROUP>:
	//		<KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
	// KUBERNETES_RESOURCE_GROUP should be in the form `{resource}.{group}` or `{resource}` (example: deployments.apps, pods)
	// +optional
	KubernetesResourcesLabelsAsTags map[string]map[string]string `json:"kubernetesResourcesLabelsAsTags,omitempty"`

	// Provide a mapping of Kubernetes Resource Groups to annotations mapping to Datadog Tags.
	// <KUBERNETES_RESOURCE_GROUP>:
	//		<KUBERNETES_ANNOTATION>: <DATADOG_TAG_KEY>
	// KUBERNETES_RESOURCE_GROUP should be in the form `{resource}.{group}` or `{resource}` (example: deployments.apps, pods)
	// +optional
	KubernetesResourcesAnnotationsAsTags map[string]map[string]string `json:"kubernetesResourcesAnnotationsAsTags,omitempty"`

	// NetworkPolicy contains the network configuration.
	// +optional
	NetworkPolicy *NetworkPolicyConfig `json:"networkPolicy,omitempty"`

	// LocalService contains configuration to customize the internal traffic policy service.
	// +optional
	LocalService *LocalService `json:"localService,omitempty"`

	// Kubelet contains the kubelet configuration parameters.
	// +optional
	Kubelet *KubeletConfig `json:"kubelet,omitempty"`

	// Path to the docker runtime socket.
	// +optional
	DockerSocketPath *string `json:"dockerSocketPath,omitempty"`

	// Path to the container runtime socket (if different from Docker).
	// +optional
	CriSocketPath *string `json:"criSocketPath,omitempty"`

	// Set DisableNonResourceRules to exclude NonResourceURLs from default ClusterRoles.
	// Required 'true' for Google Cloud Marketplace.
	// +optional
	DisableNonResourceRules *bool `json:"disableNonResourceRules,omitempty"`

	// ContainerStrategy determines whether agents run in a single or multiple containers.
	// Default: 'optimized'
	// +optional
	ContainerStrategy *ContainerStrategyType `json:"containerStrategy,omitempty"`

	// FIPS contains configuration used to customize the FIPS proxy sidecar.
	FIPS *FIPSConfig `json:"fips,omitempty"`

	// Configure the secret backend feature https://docs.datadoghq.com/agent/guide/secrets-management
	// See also: https://github.com/DataDog/datadog-operator/blob/main/docs/secret_management.md
	SecretBackend *SecretBackendConfig `json:"secretBackend,omitempty"`
}

GlobalConfig is a set of parameters that are used to configure all the components of the Datadog Operator.

func (*GlobalConfig) DeepCopy

func (in *GlobalConfig) DeepCopy() *GlobalConfig

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

func (*GlobalConfig) DeepCopyInto

func (in *GlobalConfig) DeepCopyInto(out *GlobalConfig)

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

type HelmCheckFeatureConfig

type HelmCheckFeatureConfig struct {
	// Enabled enables the Helm check.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// CollectEvents set to `true` enables event collection in the Helm check
	// (Requires Agent 7.36.0+ and Cluster Agent 1.20.0+)
	// Default: false
	// +optional
	CollectEvents *bool `json:"collectEvents,omitempty"`

	// ValuesAsTags collects Helm values from a release and uses them as tags
	// (Requires Agent and Cluster Agent 7.40.0+).
	// Default: {}
	// +optional
	ValuesAsTags map[string]string `json:"valuesAsTags,omitempty"`
}

HelmCheckFeatureConfig allows configuration of the Helm check feature. +k8s:openapi-gen=true

func (*HelmCheckFeatureConfig) DeepCopy

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

func (*HelmCheckFeatureConfig) DeepCopyInto

func (in *HelmCheckFeatureConfig) DeepCopyInto(out *HelmCheckFeatureConfig)

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

type HostPortConfig

type HostPortConfig struct {
	// Enabled enables host port configuration
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Port takes a port number (0 < x < 65536) to expose on the host. (Most containers do not need this.)
	// If HostNetwork is enabled, this value must match the ContainerPort.
	// +optional
	Port *int32 `json:"hostPort,omitempty"`
}

HostPortConfig contains host port configuration.

func (*HostPortConfig) DeepCopy

func (in *HostPortConfig) DeepCopy() *HostPortConfig

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

func (*HostPortConfig) DeepCopyInto

func (in *HostPortConfig) DeepCopyInto(out *HostPortConfig)

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

type KubeStateMetricsCoreFeatureConfig

type KubeStateMetricsCoreFeatureConfig struct {
	// Enabled enables Kube State Metrics Core.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Conf overrides the configuration for the default Kubernetes State Metrics Core check.
	// This must point to a ConfigMap containing a valid cluster check configuration.
	// +optional
	Conf *CustomConfig `json:"conf,omitempty"`
}

KubeStateMetricsCoreFeatureConfig contains the Kube State Metrics Core check feature configuration. The Kube State Metrics Core check runs in the Cluster Agent (or Cluster Check Runners). See also: https://docs.datadoghq.com/integrations/kubernetes_state_core +k8s:openapi-gen=true

func (*KubeStateMetricsCoreFeatureConfig) DeepCopy

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

func (*KubeStateMetricsCoreFeatureConfig) DeepCopyInto

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

type KubeletConfig added in v1.10.0

type KubeletConfig struct {
	// Host overrides the host used to contact kubelet API (default to status.hostIP).
	// +optional
	Host *corev1.EnvVarSource `json:"host,omitempty"`

	// TLSVerify toggles kubelet TLS verification.
	// Default: true
	// +optional
	TLSVerify *bool `json:"tlsVerify,omitempty"`

	// HostCAPath is the host path where the kubelet CA certificate is stored.
	// +optional
	HostCAPath string `json:"hostCAPath,omitempty"`

	// AgentCAPath is the container path where the kubelet CA certificate is stored.
	// Default: '/var/run/host-kubelet-ca.crt' if hostCAPath is set, else '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt'
	// +optional
	AgentCAPath string `json:"agentCAPath,omitempty"`
}

KubeletConfig contains the kubelet configuration parameters. +kubebuilder:object:generate=true

func (*KubeletConfig) DeepCopy added in v1.10.0

func (in *KubeletConfig) DeepCopy() *KubeletConfig

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

func (*KubeletConfig) DeepCopyInto added in v1.10.0

func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig)

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

type LanguageDetectionConfig

type LanguageDetectionConfig struct {
	// Enabled enables Language Detection to automatically detect languages of user workloads (beta).
	// Requires SingleStepInstrumentation.Enabled to be true.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

LanguageDetectionConfig contains the config for Language Detection.

func (*LanguageDetectionConfig) DeepCopy

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

func (*LanguageDetectionConfig) DeepCopyInto

func (in *LanguageDetectionConfig) DeepCopyInto(out *LanguageDetectionConfig)

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

type LiveContainerCollectionFeatureConfig

type LiveContainerCollectionFeatureConfig struct {
	// Enables container collection for the Live Container View.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

LiveContainerCollectionFeatureConfig contains Container Collection configuration. Container Collection is run in the Process Agent.

func (*LiveContainerCollectionFeatureConfig) DeepCopy

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

func (*LiveContainerCollectionFeatureConfig) DeepCopyInto

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

type LiveProcessCollectionFeatureConfig

type LiveProcessCollectionFeatureConfig struct {
	// Enabled enables Process monitoring.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// ScrubProcessArguments enables scrubbing of sensitive data in process command-lines (passwords, tokens, etc. ).
	// Default: true
	// +optional
	ScrubProcessArguments *bool `json:"scrubProcessArguments,omitempty"`

	// StripProcessArguments enables stripping of all process arguments.
	// Default: false
	// +optional
	StripProcessArguments *bool `json:"stripProcessArguments,omitempty"`
}

LiveProcessCollectionFeatureConfig contains Process Collection configuration. Process Collection is run in the Process Agent.

func (*LiveProcessCollectionFeatureConfig) DeepCopy

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

func (*LiveProcessCollectionFeatureConfig) DeepCopyInto

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

type LocalService

type LocalService struct {
	// NameOverride defines the name of the internal traffic service to target the agent running on the local node.
	// +optional
	NameOverride *string `json:"nameOverride,omitempty"`

	// ForceEnableLocalService forces the creation of the internal traffic policy service to target the agent running on the local node.
	// This parameter only applies to Kubernetes 1.21, where the feature is in alpha and is disabled by default.
	// (On Kubernetes 1.22+, the feature entered beta and the internal traffic service is created by default, so this parameter is ignored.)
	// Default: false
	// +optional
	ForceEnableLocalService *bool `json:"forceEnableLocalService,omitempty"`
}

LocalService provides the internal traffic policy service configuration. +k8s:openapi-gen=true

func (*LocalService) DeepCopy

func (in *LocalService) DeepCopy() *LocalService

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

func (*LocalService) DeepCopyInto

func (in *LocalService) DeepCopyInto(out *LocalService)

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

type LogCollectionFeatureConfig

type LogCollectionFeatureConfig struct {
	// Enabled enables Log collection.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// ContainerCollectAll enables Log collection from all containers.
	// Default: false
	// +optional
	ContainerCollectAll *bool `json:"containerCollectAll,omitempty"`

	// ContainerCollectUsingFiles enables log collection from files in `/var/log/pods instead` of using the container runtime API.
	// Collecting logs from files is usually the most efficient way of collecting logs.
	// See also: https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/#log-collection-setup
	// Default: true
	// +optional
	ContainerCollectUsingFiles *bool `json:"containerCollectUsingFiles,omitempty"`

	// ContainerLogsPath allows log collection from the container log path.
	// Set to a different path if you are not using the Docker runtime.
	// See also: https://docs.datadoghq.com/agent/kubernetes/daemonset_setup/?tab=k8sfile#create-manifest
	// Default: `/var/lib/docker/containers`
	// +optional
	ContainerLogsPath *string `json:"containerLogsPath,omitempty"`

	// PodLogsPath allows log collection from a pod log path.
	// Default: `/var/log/pods`
	// +optional
	PodLogsPath *string `json:"podLogsPath,omitempty"`

	// ContainerSymlinksPath allows log collection to use symbolic links in this directory to validate container ID -> pod.
	// Default: `/var/log/containers`
	// +optional
	ContainerSymlinksPath *string `json:"containerSymlinksPath,omitempty"`

	// TempStoragePath (always mounted from the host) is used by the Agent to store information about processed log files.
	// If the Agent is restarted, it starts tailing the log files immediately.
	// Default: `/var/lib/datadog-agent/logs`
	// +optional
	TempStoragePath *string `json:"tempStoragePath,omitempty"`

	// OpenFilesLimit sets the maximum number of log files that the Datadog Agent tails.
	// Increasing this limit can increase resource consumption of the Agent.
	// See also: https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/#log-collection-setup
	// Default: 100
	// +optional
	OpenFilesLimit *int32 `json:"openFilesLimit,omitempty"`
}

LogCollectionFeatureConfig contains Logs configuration. Logs collection is run in the Agent.

func (*LogCollectionFeatureConfig) DeepCopy

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

func (*LogCollectionFeatureConfig) DeepCopyInto

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

type MultiCustomConfig

type MultiCustomConfig struct {
	// ConfigDataMap corresponds to the content of the configuration files.
	// The key should be the filename the contents get mounted to; for instance check.py or check.yaml.
	ConfigDataMap map[string]string `json:"configDataMap,omitempty"`

	// ConfigMap references an existing ConfigMap with the content of the configuration files.
	ConfigMap *ConfigMapConfig `json:"configMap,omitempty"`
}

MultiCustomConfig provides a place for custom configuration of the Agent or Cluster Agent, corresponding to /confd/*.yaml. The configuration can be provided in the ConfigDataMap field as raw data, or referenced in a single ConfigMap. Note: `ConfigDataMap` and `ConfigMap` cannot be set together. +k8s:openapi-gen=true

func (*MultiCustomConfig) DeepCopy

func (in *MultiCustomConfig) DeepCopy() *MultiCustomConfig

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

func (*MultiCustomConfig) DeepCopyInto

func (in *MultiCustomConfig) DeepCopyInto(out *MultiCustomConfig)

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

type NPMFeatureConfig

type NPMFeatureConfig struct {
	// Enabled enables Network Performance Monitoring.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// EnableConntrack enables the system-probe agent to connect to the netlink/conntrack subsystem to add NAT information to connection data.
	// See also: http://conntrack-tools.netfilter.org/
	// Default: false
	// +optional
	EnableConntrack *bool `json:"enableConntrack,omitempty"`

	// CollectDNSStats enables DNS stat collection.
	// Default: false
	// +optional
	CollectDNSStats *bool `json:"collectDNSStats,omitempty"`
}

NPMFeatureConfig contains NPM (Network Performance Monitoring) feature configuration. Network Performance Monitoring runs in the System Probe and Process Agent.

func (*NPMFeatureConfig) DeepCopy

func (in *NPMFeatureConfig) DeepCopy() *NPMFeatureConfig

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

func (*NPMFeatureConfig) DeepCopyInto

func (in *NPMFeatureConfig) DeepCopyInto(out *NPMFeatureConfig)

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

type NetworkPolicyConfig

type NetworkPolicyConfig struct {
	// Create defines whether to create a NetworkPolicy for the current deployment.
	// +optional
	Create *bool `json:"create,omitempty"`

	// Flavor defines Which network policy to use.
	// +optional
	Flavor NetworkPolicyFlavor `json:"flavor,omitempty"`

	// DNSSelectorEndpoints defines the cilium selector of the DNS server entity.
	// +optional
	// +listType=atomic
	DNSSelectorEndpoints []metav1.LabelSelector `json:"dnsSelectorEndpoints,omitempty"`
}

NetworkPolicyConfig provides Network Policy configuration for the agents. +k8s:openapi-gen=true

func (*NetworkPolicyConfig) DeepCopy

func (in *NetworkPolicyConfig) DeepCopy() *NetworkPolicyConfig

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

func (*NetworkPolicyConfig) DeepCopyInto

func (in *NetworkPolicyConfig) DeepCopyInto(out *NetworkPolicyConfig)

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

type NetworkPolicyFlavor

type NetworkPolicyFlavor string

NetworkPolicyFlavor specifies which flavor of Network Policy to use.

const (
	// NetworkPolicyFlavorKubernetes refers to  `networking.k8s.io/v1/NetworkPolicy`
	NetworkPolicyFlavorKubernetes NetworkPolicyFlavor = "kubernetes"

	// NetworkPolicyFlavorCilium refers to `cilium.io/v2/CiliumNetworkPolicy`
	NetworkPolicyFlavorCilium NetworkPolicyFlavor = "cilium"
)

func IsNetworkPolicyEnabled

func IsNetworkPolicyEnabled(dda *DatadogAgent) (bool, NetworkPolicyFlavor)

IsNetworkPolicyEnabled returns whether a network policy should be created and which flavor to use

type OOMKillFeatureConfig

type OOMKillFeatureConfig struct {
	// Enables the OOMKill eBPF-based check.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

OOMKillFeatureConfig configures the OOM Kill monitoring feature.

func (*OOMKillFeatureConfig) DeepCopy

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

func (*OOMKillFeatureConfig) DeepCopyInto

func (in *OOMKillFeatureConfig) DeepCopyInto(out *OOMKillFeatureConfig)

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

type OTLPFeatureConfig

type OTLPFeatureConfig struct {
	// Receiver contains configuration for the OTLP ingest receiver.
	Receiver OTLPReceiverConfig `json:"receiver,omitempty"`
}

OTLPFeatureConfig contains configuration for OTLP ingest. +k8s:openapi-gen=true

func (*OTLPFeatureConfig) DeepCopy

func (in *OTLPFeatureConfig) DeepCopy() *OTLPFeatureConfig

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

func (*OTLPFeatureConfig) DeepCopyInto

func (in *OTLPFeatureConfig) DeepCopyInto(out *OTLPFeatureConfig)

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

type OTLPGRPCConfig

type OTLPGRPCConfig struct {
	// Enable the OTLP/gRPC endpoint. Host port is enabled by default and can be disabled.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Enable hostPort for OTLP/gRPC
	// Default: true
	// +optional
	HostPortConfig *HostPortConfig `json:"hostPortConfig,omitempty"`

	// Endpoint for OTLP/gRPC.
	// gRPC supports several naming schemes: https://github.com/grpc/grpc/blob/master/doc/naming.md
	// The Datadog Operator supports only 'host:port' (usually `0.0.0.0:port`).
	// Default: `0.0.0.0:4317`.
	// +optional
	Endpoint *string `json:"endpoint,omitempty"`
}

OTLPGRPCConfig contains configuration for the OTLP ingest OTLP/gRPC receiver. +k8s:openapi-gen=true

func (*OTLPGRPCConfig) DeepCopy

func (in *OTLPGRPCConfig) DeepCopy() *OTLPGRPCConfig

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

func (*OTLPGRPCConfig) DeepCopyInto

func (in *OTLPGRPCConfig) DeepCopyInto(out *OTLPGRPCConfig)

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

type OTLPHTTPConfig

type OTLPHTTPConfig struct {
	// Enable the OTLP/HTTP endpoint. Host port is enabled by default and can be disabled.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Enable hostPorts for OTLP/HTTP
	// Default: true
	// +optional
	HostPortConfig *HostPortConfig `json:"hostPortConfig,omitempty"`

	// Endpoint for OTLP/HTTP.
	// Default: '0.0.0.0:4318'.
	// +optional
	Endpoint *string `json:"endpoint,omitempty"`
}

OTLPHTTPConfig contains configuration for the OTLP ingest OTLP/HTTP receiver. +k8s:openapi-gen=true

func (*OTLPHTTPConfig) DeepCopy

func (in *OTLPHTTPConfig) DeepCopy() *OTLPHTTPConfig

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

func (*OTLPHTTPConfig) DeepCopyInto

func (in *OTLPHTTPConfig) DeepCopyInto(out *OTLPHTTPConfig)

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

type OTLPProtocolsConfig

type OTLPProtocolsConfig struct {
	// GRPC contains configuration for the OTLP ingest OTLP/gRPC receiver.
	// +optional
	GRPC *OTLPGRPCConfig `json:"grpc,omitempty"`

	// HTTP contains configuration for the OTLP ingest OTLP/HTTP receiver.
	// +optional
	HTTP *OTLPHTTPConfig `json:"http,omitempty"`
}

OTLPProtocolsConfig contains configuration for the OTLP ingest receiver protocols. +k8s:openapi-gen=true

func (*OTLPProtocolsConfig) DeepCopy

func (in *OTLPProtocolsConfig) DeepCopy() *OTLPProtocolsConfig

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

func (*OTLPProtocolsConfig) DeepCopyInto

func (in *OTLPProtocolsConfig) DeepCopyInto(out *OTLPProtocolsConfig)

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

type OTLPReceiverConfig

type OTLPReceiverConfig struct {
	// Protocols contains configuration for the OTLP ingest receiver protocols.
	Protocols OTLPProtocolsConfig `json:"protocols,omitempty"`
}

OTLPReceiverConfig contains configuration for the OTLP ingest receiver. +k8s:openapi-gen=true

func (*OTLPReceiverConfig) DeepCopy

func (in *OTLPReceiverConfig) DeepCopy() *OTLPReceiverConfig

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

func (*OTLPReceiverConfig) DeepCopyInto

func (in *OTLPReceiverConfig) DeepCopyInto(out *OTLPReceiverConfig)

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

type OrchestratorExplorerFeatureConfig

type OrchestratorExplorerFeatureConfig struct {
	// Enabled enables the Orchestrator Explorer.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Conf overrides the configuration for the default Orchestrator Explorer check.
	// This must point to a ConfigMap containing a valid cluster check configuration.
	// +optional
	Conf *CustomConfig `json:"conf,omitempty"`

	// ScrubContainers enables scrubbing of sensitive container data (passwords, tokens, etc. ).
	// Default: true
	// +optional
	ScrubContainers *bool `json:"scrubContainers,omitempty"`

	// `CustomResources` defines custom resources for the orchestrator explorer to collect.
	// Each item should follow the convention `group/version/kind`. For example, `datadoghq.com/v1alpha1/datadogmetrics`.
	// +optional
	// +listType=set
	CustomResources []string `json:"customResources,omitempty"`

	// Additional tags to associate with the collected data in the form of `a b c`.
	// This is a Cluster Agent option distinct from DD_TAGS that is used in the Orchestrator Explorer.
	// +optional
	// +listType=set
	ExtraTags []string `json:"extraTags,omitempty"`

	// Override the API endpoint for the Orchestrator Explorer.
	// URL Default: "https://orchestrator.datadoghq.com".
	// +optional
	DDUrl *string `json:"ddUrl,omitempty"`
}

OrchestratorExplorerFeatureConfig contains the Orchestrator Explorer check feature configuration. The Orchestrator Explorer check runs in the Process and Cluster Agents (or Cluster Check Runners). See also: https://docs.datadoghq.com/infrastructure/livecontainers/#kubernetes-resources +k8s:openapi-gen=true

func (*OrchestratorExplorerFeatureConfig) DeepCopy

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

func (*OrchestratorExplorerFeatureConfig) DeepCopyInto

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

type OriginDetectionUnified

type OriginDetectionUnified struct {
	// Enabled enables unified mechanism for origin detection.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

OriginDetectionUnified defines the origin detection unified mechanism behavior.

func (*OriginDetectionUnified) DeepCopy

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

func (*OriginDetectionUnified) DeepCopyInto

func (in *OriginDetectionUnified) DeepCopyInto(out *OriginDetectionUnified)

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

type ProcessDiscoveryFeatureConfig

type ProcessDiscoveryFeatureConfig struct {
	// Enabled enables the Process Discovery check in the Agent.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

ProcessDiscoveryFeatureConfig contains the configuration for the process discovery check ProcessDiscovery is run in the ProcessAgent

func (*ProcessDiscoveryFeatureConfig) DeepCopy

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

func (*ProcessDiscoveryFeatureConfig) DeepCopyInto

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

type Profile

type Profile struct {
	// EnvVars specifies the environment variables for the profile.
	// +optional
	// +listType=map
	// +listMapKey=name
	EnvVars []corev1.EnvVar `json:"env,omitempty"`

	// ResourceRequirements specifies the resource requirements for the profile.
	// +optional
	ResourceRequirements *corev1.ResourceRequirements `json:"resources,omitempty"`
}

Profile defines a sidecar configuration override.

func (*Profile) DeepCopy

func (in *Profile) DeepCopy() *Profile

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

func (*Profile) DeepCopyInto

func (in *Profile) DeepCopyInto(out *Profile)

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

type PrometheusScrapeFeatureConfig

type PrometheusScrapeFeatureConfig struct {
	// Enable autodiscovery of pods and services exposing Prometheus metrics.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// EnableServiceEndpoints enables generating dedicated checks for service endpoints.
	// Default: false
	// +optional
	EnableServiceEndpoints *bool `json:"enableServiceEndpoints,omitempty"`

	// AdditionalConfigs allows adding advanced Prometheus check configurations with custom discovery rules.
	// +optional
	AdditionalConfigs *string `json:"additionalConfigs,omitempty"`

	// Version specifies the version of the OpenMetrics check.
	// Default: 2
	// +optional
	Version *int `json:"version,omitempty"`
}

PrometheusScrapeFeatureConfig allows configuration of the Prometheus Autodiscovery feature. +k8s:openapi-gen=true

func (*PrometheusScrapeFeatureConfig) DeepCopy

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

func (*PrometheusScrapeFeatureConfig) DeepCopyInto

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

type RemoteConfigConfiguration

type RemoteConfigConfiguration struct {
	Features *DatadogFeatures `json:"features,omitempty"`
}

RemoteConfigConfiguration stores the configuration received from RemoteConfig. +k8s:openapi-gen=true

func (*RemoteConfigConfiguration) DeepCopy

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

func (*RemoteConfigConfiguration) DeepCopyInto

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

type RemoteConfigurationFeatureConfig

type RemoteConfigurationFeatureConfig struct {
	// Enable this option to activate Remote Configuration.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

RemoteConfigurationFeatureConfig contains RC (Remote Configuration) configuration. RC runs in the Agent.

func (*RemoteConfigurationFeatureConfig) DeepCopy

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

func (*RemoteConfigurationFeatureConfig) DeepCopyInto

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

type SBOMContainerImageConfig

type SBOMContainerImageConfig struct {
	// Enable this option to activate SBOM collection.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Analyzers to use for SBOM collection.
	// +optional
	// +listType=set
	Analyzers []string `json:"analyzers,omitempty"`

	// Enable this option to enable support for uncompressed layers.
	// Default: false
	// +optional
	UncompressedLayersSupport bool `json:"uncompressedLayersSupport,omitempty"`

	// Enable this option to enable experimental overlayFS direct scan.
	// Default: false
	// +optional
	OverlayFSDirectScan bool `json:"overlayFSDirectScan,omitempty"`
}

SBOMTypeConfig contains configuration for a SBOM collection type.

func (*SBOMContainerImageConfig) DeepCopy

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

func (*SBOMContainerImageConfig) DeepCopyInto

func (in *SBOMContainerImageConfig) DeepCopyInto(out *SBOMContainerImageConfig)

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

type SBOMFeatureConfig

type SBOMFeatureConfig struct {
	// Enable this option to activate SBOM collection.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	ContainerImage *SBOMContainerImageConfig `json:"containerImage,omitempty"`
	Host           *SBOMHostConfig           `json:"host,omitempty"`
}

SBOMFeatureConfig contains SBOM (Software Bill of Materials) collection configuration. SBOM runs in the Agent.

func (*SBOMFeatureConfig) DeepCopy

func (in *SBOMFeatureConfig) DeepCopy() *SBOMFeatureConfig

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

func (*SBOMFeatureConfig) DeepCopyInto

func (in *SBOMFeatureConfig) DeepCopyInto(out *SBOMFeatureConfig)

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

type SBOMHostConfig

type SBOMHostConfig struct {
	// Enable this option to activate SBOM collection.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Analyzers to use for SBOM collection.
	// +optional
	// +listType=set
	Analyzers []string `json:"analyzers,omitempty"`
}

SBOMTypeConfig contains configuration for a SBOM collection type.

func (*SBOMHostConfig) DeepCopy

func (in *SBOMHostConfig) DeepCopy() *SBOMHostConfig

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

func (*SBOMHostConfig) DeepCopyInto

func (in *SBOMHostConfig) DeepCopyInto(out *SBOMHostConfig)

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

type SeccompConfig

type SeccompConfig struct {
	// CustomRootPath specifies a custom Seccomp Profile root location.
	// +optional
	CustomRootPath *string `json:"customRootPath,omitempty"`

	// CustomProfile specifies a ConfigMap containing a custom Seccomp Profile.
	// ConfigMap data must either have the key `system-probe-seccomp.json` or CustomProfile.Items
	// must include a corev1.KeytoPath that maps the key to the path `system-probe-seccomp.json`.
	// +optional
	CustomProfile *CustomConfig `json:"customProfile,omitempty"`
}

SeccompConfig is used to override default values for Seccomp Profile configurations. +k8s:openapi-gen=true

func (*SeccompConfig) DeepCopy

func (in *SeccompConfig) DeepCopy() *SeccompConfig

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

func (*SeccompConfig) DeepCopyInto

func (in *SeccompConfig) DeepCopyInto(out *SeccompConfig)

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

type SecretBackendConfig

type SecretBackendConfig struct {
	// The secret backend command to use. Datadog provides a pre-defined binary `/readsecret_multiple_providers.sh`.
	// Read more about `/readsecret_multiple_providers.sh` at https://docs.datadoghq.com/agent/configuration/secrets-management/?tab=linux#script-for-reading-from-multiple-secret-providers.
	Command *string `json:"command,omitempty"`

	// List of arguments to pass to the command (space-separated strings).
	// +optional
	Args *string `json:"args,omitempty"`

	// The command timeout in seconds.
	// Default: `30`.
	// +optional
	Timeout *int32 `json:"timeout,omitempty"`

	// Whether to create a global permission allowing Datadog agents to read all Kubernetes secrets.
	// Default: `false`.
	// +optional
	EnableGlobalPermissions *bool `json:"enableGlobalPermissions,omitempty"`

	// Roles for Datadog to read the specified secrets, replacing `enableGlobalPermissions`.
	// They are defined as a list of namespace/secrets.
	// Each defined namespace needs to be present in the DatadogAgent controller using `WATCH_NAMESPACE` or `DD_AGENT_WATCH_NAMESPACE`.
	// See also: https://github.com/DataDog/datadog-operator/blob/main/docs/secret_management.md#how-to-deploy-the-agent-components-using-the-secret-backend-feature-with-datadogagent.
	// +optional
	// +listType=atomic
	Roles []*SecretBackendRolesConfig `json:"roles,omitempty"`
}

SecretBackendConfig provides configuration for the secret backend. +k8s:openapi-gen=true

func (*SecretBackendConfig) DeepCopy

func (in *SecretBackendConfig) DeepCopy() *SecretBackendConfig

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

func (*SecretBackendConfig) DeepCopyInto

func (in *SecretBackendConfig) DeepCopyInto(out *SecretBackendConfig)

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

type SecretBackendRolesConfig added in v1.10.0

type SecretBackendRolesConfig struct {
	// Namespace defines the namespace in which the secrets reside.
	// +required
	Namespace *string `json:"namespace,omitempty"`

	// Secrets defines the list of secrets for which a role should be created.
	// +required
	// +listType=set
	Secrets []string `json:"secrets,omitempty"`
}

SecretBackendRolesConfig provides configuration of the secrets Datadog agents can read for the SecretBackend feature +k8s:openapi-gen=true

func (*SecretBackendRolesConfig) DeepCopy added in v1.10.0

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

func (*SecretBackendRolesConfig) DeepCopyInto added in v1.10.0

func (in *SecretBackendRolesConfig) DeepCopyInto(out *SecretBackendRolesConfig)

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

type SecretConfig added in v1.10.0

type SecretConfig struct {
	// SecretName is the name of the secret.
	SecretName string `json:"secretName"`

	// KeyName is the key of the secret to use.
	// +optional
	KeyName string `json:"keyName,omitempty"`
}

SecretConfig contains a secret name and an included key. +kubebuilder:object:generate=true

func (*SecretConfig) DeepCopy added in v1.10.0

func (in *SecretConfig) DeepCopy() *SecretConfig

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

func (*SecretConfig) DeepCopyInto added in v1.10.0

func (in *SecretConfig) DeepCopyInto(out *SecretConfig)

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

type Selector

type Selector struct {
	// NamespaceSelector specifies the label selector for namespaces.
	// +optional
	NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`

	// ObjectSelector specifies the label selector for objects.
	// +optional
	ObjectSelector *metav1.LabelSelector `json:"objectSelector,omitempty"`
}

Selectors define a pod selector for sidecar injection.

func (*Selector) DeepCopy

func (in *Selector) DeepCopy() *Selector

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

func (*Selector) DeepCopyInto

func (in *Selector) DeepCopyInto(out *Selector)

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

type SingleStepInstrumentation

type SingleStepInstrumentation struct {
	// Enabled enables injecting the Datadog APM libraries into all pods in the cluster.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// EnabledNamespaces enables injecting the Datadog APM libraries into pods in specific namespaces.
	// +optional
	// +listType=set
	EnabledNamespaces []string `json:"enabledNamespaces,omitempty"`

	// DisabledNamespaces disables injecting the Datadog APM libraries into pods in specific namespaces.
	// +optional
	// +listType=set
	DisabledNamespaces []string `json:"disabledNamespaces,omitempty"`

	// LibVersions configures injection of specific tracing library versions with Single Step Instrumentation.
	// <Library>: <Version>
	// ex: "java": "v1.18.0"
	// +optional
	LibVersions map[string]string `json:"libVersions,omitempty"`

	// LanguageDetection detects languages and adds them as annotations on Deployments, but does not use these languages for injecting libraries to workload pods.
	// (Requires Agent 7.52.0+ and Cluster Agent 7.52.0+)
	// +optional
	LanguageDetection *LanguageDetectionConfig `json:"languageDetection,omitempty"`
}

SingleStepInstrumentation contains the config for the namespaces to target and the library to inject.

func (*SingleStepInstrumentation) DeepCopy

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

func (*SingleStepInstrumentation) DeepCopyInto

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

type TCPQueueLengthFeatureConfig

type TCPQueueLengthFeatureConfig struct {
	// Enables the TCP queue length eBPF-based check.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

TCPQueueLengthFeatureConfig configures the TCP queue length monitoring feature.

func (*TCPQueueLengthFeatureConfig) DeepCopy

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

func (*TCPQueueLengthFeatureConfig) DeepCopyInto

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

type USMFeatureConfig

type USMFeatureConfig struct {
	// Enabled enables Universal Service Monitoring.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

USMFeatureConfig contains USM (Universal Service Monitoring) feature configuration. Universal Service Monitoring runs in the Process Agent and System Probe.

func (*USMFeatureConfig) DeepCopy

func (in *USMFeatureConfig) DeepCopy() *USMFeatureConfig

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

func (*USMFeatureConfig) DeepCopyInto

func (in *USMFeatureConfig) DeepCopyInto(out *USMFeatureConfig)

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

type UnixDomainSocketConfig

type UnixDomainSocketConfig struct {
	// Enabled enables Unix Domain Socket.
	// Default: true
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Path defines the socket path used when enabled.
	// +optional
	Path *string `json:"path,omitempty"`
}

UnixDomainSocketConfig contains the Unix Domain Socket configuration. +k8s:openapi-gen=true

func (*UnixDomainSocketConfig) DeepCopy

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

func (*UnixDomainSocketConfig) DeepCopyInto

func (in *UnixDomainSocketConfig) DeepCopyInto(out *UnixDomainSocketConfig)

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

type WorkloadAutoscalingFeatureConfig

type WorkloadAutoscalingFeatureConfig struct {
	// Enabled enables the workload autoscaling product.
	// Default: false
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

WorkloadAutoscalingFeatureConfig contains the configuration for the workload autoscaling product.

func (*WorkloadAutoscalingFeatureConfig) DeepCopy

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

func (*WorkloadAutoscalingFeatureConfig) DeepCopyInto

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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