v1alpha1

package
v0.8.1-rc.2 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2022 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the datadoghq v1alpha1 API group +k8s:deepcopy-gen=package,register +groupName=datadoghq.com

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

Index

Constants

View Source
const (
	// AgentDeploymentNameLabelKey label key use to link a Resource to a DatadogAgent
	AgentDeploymentNameLabelKey = "agent.datadoghq.com/name"
	// AgentDeploymentComponentLabelKey label key use to know with component is it
	AgentDeploymentComponentLabelKey = "agent.datadoghq.com/component"
	// MD5AgentDeploymentAnnotationKey annotation key used on a Resource in order to identify which AgentDeployment have been used to generate it.
	MD5AgentDeploymentAnnotationKey = "agent.datadoghq.com/agentspechash"

	// 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"
	// DefaultClusterAgentServicePort default cluster-agent service port
	DefaultClusterAgentServicePort = 5005
	// DefaultMetricsServerServicePort default metrics-server port
	DefaultMetricsServerServicePort = 443
	// DefaultMetricsServerTargetPort default metrics-server pod port
	DefaultMetricsServerTargetPort = int(defaultMetricsProviderPort)
	// DefaultAdmissionControllerServicePort default admission controller service port
	DefaultAdmissionControllerServicePort = 443
	// DefaultAdmissionControllerTargetPort default admission controller pod port
	DefaultAdmissionControllerTargetPort = 8000
	// DefaultDogstatsdPort default dogstatsd port
	DefaultDogstatsdPort = 8125
	// DefaultDogstatsdPortName default dogstatsd port name
	DefaultDogstatsdPortName = "dogstatsd"
	// DefaultApmPortName default apm port name
	DefaultApmPortName = "apm"
)
View Source
const (
	DatadogHost                                  = "DATADOG_HOST"
	DDAPIKey                                     = "DD_API_KEY"
	DDSecretBackendCommand                       = "DD_SECRET_BACKEND_COMMAND"
	DDClusterName                                = "DD_CLUSTER_NAME"
	DDSite                                       = "DD_SITE"
	DDddURL                                      = "DD_DD_URL"
	DDHealthPort                                 = "DD_HEALTH_PORT"
	DDLogLevel                                   = "DD_LOG_LEVEL"
	DDNamespaceLabelsAsTags                      = "DD_KUBERNETES_NAMESPACE_LABELS_AS_TAGS"
	DDNodeLabelsAsTags                           = "DD_KUBERNETES_NODE_LABELS_AS_TAGS"
	DDPodLabelsAsTags                            = "DD_KUBERNETES_POD_LABELS_AS_TAGS"
	DDPodAnnotationsAsTags                       = "DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS"
	DDTags                                       = "DD_TAGS"
	DDCollectKubeEvents                          = "DD_COLLECT_KUBERNETES_EVENTS"
	DDLeaderElection                             = "DD_LEADER_ELECTION"
	DDLogsEnabled                                = "DD_LOGS_ENABLED"
	DDLogsConfigContainerCollectAll              = "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL"
	DDLogsContainerCollectUsingFiles             = "DD_LOGS_CONFIG_K8S_CONTAINER_USE_FILE"
	DDLogsConfigOpenFilesLimit                   = "DD_LOGS_CONFIG_OPEN_FILES_LIMIT"
	DDDogstatsdEnabled                           = "DD_USE_DOGSTATSD"
	DDDogstatsdOriginDetection                   = "DD_DOGSTATSD_ORIGIN_DETECTION"
	DDDogstatsdPort                              = "DD_DOGSTATSD_PORT"
	DDDogstatsdSocket                            = "DD_DOGSTATSD_SOCKET"
	DDDogstatsdMapperProfiles                    = "DD_DOGSTATSD_MAPPER_PROFILES"
	DDClusterAgentEnabled                        = "DD_CLUSTER_AGENT_ENABLED"
	DDClusterAgentKubeServiceName                = "DD_CLUSTER_AGENT_KUBERNETES_SERVICE_NAME"
	DDClusterAgentAuthToken                      = "DD_CLUSTER_AGENT_AUTH_TOKEN"
	DDMetricsProviderEnabled                     = "DD_EXTERNAL_METRICS_PROVIDER_ENABLED"
	DDMetricsProviderPort                        = "DD_EXTERNAL_METRICS_PROVIDER_PORT"
	DDMetricsProviderUseDatadogMetric            = "DD_EXTERNAL_METRICS_PROVIDER_USE_DATADOGMETRIC_CRD"
	DDMetricsProviderWPAController               = "DD_EXTERNAL_METRICS_PROVIDER_WPA_CONTROLLER"
	DDAppKey                                     = "DD_APP_KEY"
	DDClusterChecksEnabled                       = "DD_CLUSTER_CHECKS_ENABLED"
	DDIgnoreAutoConf                             = "DD_IGNORE_AUTOCONF"
	DDKubeStateMetricsCoreEnabled                = "DD_KUBE_STATE_METRICS_CORE_ENABLED"
	DDKubeStateMetricsCoreConfigMap              = "DD_KUBE_STATE_METRICS_CORE_CONFIGMAP_NAME"
	DDClcRunnerEnabled                           = "DD_CLC_RUNNER_ENABLED"
	DDClcRunnerHost                              = "DD_CLC_RUNNER_HOST"
	DDClcRunnerID                                = "DD_CLC_RUNNER_ID"
	DDExtraConfigProviders                       = "DD_EXTRA_CONFIG_PROVIDERS"
	DDExtraListeners                             = "DD_EXTRA_LISTENERS"
	DDHostname                                   = "DD_HOSTNAME"
	DDAPMEnabled                                 = "DD_APM_ENABLED"
	DDPPMReceiverSocket                          = "DD_APM_RECEIVER_SOCKET"
	DDProcessAgentEnabled                        = "DD_PROCESS_AGENT_ENABLED"
	DDSystemProbeAgentEnabled                    = "DD_SYSTEM_PROBE_ENABLED"
	DDSystemProbeSocketPath                      = "DD_SYSPROBE_SOCKET"
	DDSystemProbeCollectDNSStatsEnabled          = "DD_COLLECT_DNS_STATS"
	DDSystemProbeNPMEnabled                      = "DD_SYSTEM_PROBE_NETWORK_ENABLED"
	DDSystemProbeEnvPrefix                       = "DD_SYSTEM_PROBE_CONFIG_"
	DDSystemProbeDebugPort                       = DDSystemProbeEnvPrefix + "DEBUG_PORT"
	DDSystemProbeConntrackEnabled                = DDSystemProbeEnvPrefix + "ENABLE_CONNTRACK"
	DDSystemProbeBPFDebugEnabled                 = DDSystemProbeEnvPrefix + "BPF_DEBUG"
	DDSystemProbeTCPQueueLengthEnabled           = DDSystemProbeEnvPrefix + "ENABLE_TCP_QUEUE_LENGTH"
	DDSystemProbeOOMKillEnabled                  = DDSystemProbeEnvPrefix + "ENABLE_OOM_KILL"
	DDEnableMetadataCollection                   = "DD_ENABLE_METADATA_COLLECTION"
	DDKubeletHost                                = "DD_KUBERNETES_KUBELET_HOST"
	DDKubeletTLSVerify                           = "DD_KUBELET_TLS_VERIFY"
	DDKubeletCAPath                              = "DD_KUBELET_CLIENT_CA"
	DDCriSocketPath                              = "DD_CRI_SOCKET_PATH"
	DockerHost                                   = "DOCKER_HOST"
	DDAdmissionControllerEnabled                 = "DD_ADMISSION_CONTROLLER_ENABLED"
	DDAdmissionControllerMutateUnlabelled        = "DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED"
	DDAdmissionControllerInjectConfig            = "DD_ADMISSION_CONTROLLER_INJECT_CONFIG_ENABLED"
	DDAdmissionControllerInjectTags              = "DD_ADMISSION_CONTROLLER_INJECT_TAGS_ENABLED"
	DDAdmissionControllerServiceName             = "DD_ADMISSION_CONTROLLER_SERVICE_NAME"
	DDAdmissionControllerInjectConfigMode        = "DD_ADMISSION_CONTROLLER_INJECT_CONFIG_MODE"
	DDAdmissionControllerLocalServiceName        = "DD_ADMISSION_CONTROLLER_INJECT_CONFIG_LOCAL_SERVICE_NAME"
	DDComplianceConfigEnabled                    = "DD_COMPLIANCE_CONFIG_ENABLED"
	DDComplianceConfigCheckInterval              = "DD_COMPLIANCE_CONFIG_CHECK_INTERVAL"
	DDComplianceConfigDir                        = "DD_COMPLIANCE_CONFIG_DIR"
	DDRuntimeSecurityConfigEnabled               = "DD_RUNTIME_SECURITY_CONFIG_ENABLED"
	DDRuntimeSecurityConfigPoliciesDir           = "DD_RUNTIME_SECURITY_CONFIG_POLICIES_DIR"
	DDRuntimeSecurityConfigSocket                = "DD_RUNTIME_SECURITY_CONFIG_SOCKET"
	DDRuntimeSecurityConfigSyscallMonitorEnabled = "DD_RUNTIME_SECURITY_CONFIG_SYSCALL_MONITOR_ENABLED"
	DDRuntimeSecurityConfigRemoteTaggerEnabled   = "DD_RUNTIME_SECURITY_CONFIG_REMOTE_TAGGER"
	DDExternalMetricsProviderEndpoint            = "DD_EXTERNAL_METRICS_PROVIDER_ENDPOINT"
	DDPrometheusScrapeEnabled                    = "DD_PROMETHEUS_SCRAPE_ENABLED"
	DDPrometheusScrapeServiceEndpoints           = "DD_PROMETHEUS_SCRAPE_SERVICE_ENDPOINTS"
	DDPrometheusScrapeChecks                     = "DD_PROMETHEUS_SCRAPE_CHECKS"
	DDExternalMetricsProviderAPIKey              = "DD_EXTERNAL_METRICS_PROVIDER_API_KEY"
	DDExternalMetricsProviderAppKey              = "DD_EXTERNAL_METRICS_PROVIDER_APP_KEY"
	DDAuthTokenFilePath                          = "DD_AUTH_TOKEN_FILE_PATH"

	// KubernetesEnvvarName Env var used by the Datadog Agent container entrypoint
	// to add kubelet config provider and listener
	KubernetesEnvvarName = "KUBERNETES"

	LogDatadogVolumeName                 = "logdatadog"
	LogDatadogVolumePath                 = "/var/log/datadog"
	TmpVolumeName                        = "tmp"
	TmpVolumePath                        = "/tmp"
	CertificatesVolumeName               = "certificates"
	CertificatesVolumePath               = "/etc/datadog-agent/certificates"
	APMSocketVolumeName                  = "apmsocket"
	APMSocketVolumePath                  = "/var/run/datadog/apm"
	InstallInfoVolumeName                = "installinfo"
	InstallInfoVolumeSubPath             = "install_info"
	InstallInfoVolumePath                = "/etc/datadog-agent/install_info"
	InstallInfoVolumeReadOnly            = true
	ConfdVolumeName                      = "confd"
	ConfdVolumePath                      = "/conf.d"
	ChecksdVolumeName                    = "checksd"
	ChecksdVolumePath                    = "/checks.d"
	ConfigVolumeName                     = "config"
	ConfigVolumePath                     = "/etc/datadog-agent"
	AuthVolumeName                       = "datadog-agent-auth"
	AuthVolumePath                       = "/etc/datadog-agent/auth"
	ProcVolumeName                       = "procdir"
	ProcVolumePath                       = "/host/proc"
	ProcVolumeReadOnly                   = true
	PasswdVolumeName                     = "passwd"
	PasswdVolumePath                     = "/etc/passwd"
	GroupVolumeName                      = "group"
	GroupVolumePath                      = "/etc/group"
	HostRootVolumeName                   = "hostroot"
	HostRootVolumePath                   = "/host/root"
	CgroupsVolumeName                    = "cgroups"
	CgroupsVolumePath                    = "/host/sys/fs/cgroup"
	CgroupsVolumeReadOnly                = true
	SystemProbeSocketVolumeName          = "sysprobe-socket-dir"
	SystemProbeSocketVolumePath          = "/var/run/sysprobe"
	CriSocketVolumeName                  = "runtimesocketdir"
	CriSocketVolumeReadOnly              = true
	DogstatsdSocketVolumeName            = "dsdsocket"
	DogstatsdSocketVolumePath            = "/var/run/datadog/statsd"
	KubeStateMetricCoreVolumeName        = "ksm-core-config"
	PointerVolumeName                    = "pointerdir"
	PointerVolumePath                    = "/opt/datadog-agent/run"
	LogPodVolumeName                     = "logpodpath"
	LogPodVolumePath                     = "/var/log/pods"
	LogPodVolumeReadOnly                 = true
	LogContainerVolumeName               = "logcontainerpath"
	LogContainerVolumeReadOnly           = true
	SymlinkContainerVolumeName           = "symlinkcontainerpath"
	SymlinkContainerVolumeReadOnly       = true
	SystemProbeDebugfsVolumeName         = "debugfs"
	SystemProbeDebugfsVolumePath         = "/sys/kernel/debug"
	SystemProbeConfigVolumeName          = "system-probe-config"
	SystemProbeConfigVolumePath          = "/etc/datadog-agent/system-probe.yaml"
	SystemProbeConfigVolumeSubPath       = "system-probe.yaml"
	SystemProbeAgentSecurityVolumeName   = "datadog-agent-security"
	SystemProbeAgentSecurityVolumePath   = "/etc/config"
	SystemProbeSecCompRootVolumeName     = "seccomp-root"
	SystemProbeSecCompRootVolumePath     = "/host/var/lib/kubelet/seccomp"
	SystemProbeLibModulesVolumeName      = "modules"
	SystemProbeLibModulesVolumePath      = "/lib/modules"
	SystemProbeUsrSrcVolumeName          = "src"
	SystemProbeUsrSrcVolumePath          = "/usr/src"
	AgentCustomConfigVolumeName          = "custom-datadog-yaml"
	AgentCustomConfigVolumePath          = "/etc/datadog-agent/datadog.yaml"
	AgentCustomConfigVolumeSubPath       = "datadog.yaml"
	KubeletCAVolumeName                  = "kubelet-ca"
	DefaultKubeletAgentCAPath            = "/var/run/host-kubelet-ca.crt"
	OrchestratorExplorerConfigVolumeName = "orchestrator-explorer-config"

	HostCriSocketPathPrefix = "/host"

	SecurityAgentRuntimeCustomPoliciesVolumeName     = "customruntimepolicies"
	SecurityAgentRuntimePoliciesDirVolumeName        = "runtimepoliciesdir"
	SecurityAgentRuntimePoliciesDirVolumePath        = "/etc/datadog-agent/runtime-security.d"
	SecurityAgentComplianceCustomConfigDirVolumeName = "customcompliancebenchmarks"
	SecurityAgentComplianceConfigDirVolumeName       = "compliancedir"
	SecurityAgentComplianceConfigDirVolumePath       = "/etc/datadog-agent/compliance.d"

	ClusterAgentCustomConfigVolumeName    = "custom-datadog-yaml"
	ClusterAgentCustomConfigVolumePath    = "/etc/datadog-agent/datadog-cluster.yaml"
	ClusterAgentCustomConfigVolumeSubPath = "datadog-cluster.yaml"

	SysteProbeAppArmorAnnotationKey   = "container.apparmor.security.beta.kubernetes.io/system-probe"
	SysteProbeSeccompAnnotationKey    = "container.seccomp.security.alpha.kubernetes.io/system-probe"
	SystemProbeOSReleaseDirVolumeName = "host-osrelease"
	SystemProbeOSReleaseDirVolumePath = "/etc/os-release"
	SystemProbeOSReleaseDirMountPath  = "/host/etc/os-release"

	KubeServicesConfigProvider              = "kube_services"
	KubeEndpointsConfigProvider             = "kube_endpoints"
	KubeServicesAndEndpointsConfigProviders = "kube_services kube_endpoints"
	ClusterChecksConfigProvider             = "clusterchecks"
	EndpointsChecksConfigProvider           = "endpointschecks"
	ClusterAndEndpointsConfigPoviders       = "clusterchecks endpointschecks"

	KubeServicesListener              = "kube_services"
	KubeEndpointsListener             = "kube_endpoints"
	KubeServicesAndEndpointsListeners = "kube_services kube_endpoints"

	CoreAPIGroup             = ""
	ExtensionsAPIGroup       = "extensions"
	OpenShiftQuotaAPIGroup   = "quota.openshift.io"
	RbacAPIGroup             = "rbac.authorization.k8s.io"
	AutoscalingAPIGroup      = "autoscaling"
	CertificatesAPIGroup     = "certificates.k8s.io"
	StorageAPIGroup          = "storage.k8s.io"
	CoordinationAPIGroup     = "coordination.k8s.io"
	DatadogAPIGroup          = "datadoghq.com"
	AdmissionAPIGroup        = "admissionregistration.k8s.io"
	AppsAPIGroup             = "apps"
	BatchAPIGroup            = "batch"
	PolicyAPIGroup           = "policy"
	NetworkingAPIGroup       = "networking.k8s.io"
	AutoscalingK8sIoAPIGroup = "autoscaling.k8s.io"
	AuthorizationAPIGroup    = "authorization.k8s.io"

	ServicesResource                    = "services"
	EventsResource                      = "events"
	EndpointsResource                   = "endpoints"
	PodsResource                        = "pods"
	NodesResource                       = "nodes"
	ComponentStatusesResource           = "componentstatuses"
	CertificatesSigningRequestsResource = "certificatesigningrequests"
	ConfigMapsResource                  = "configmaps"
	ResourceQuotasResource              = "resourcequotas"
	ReplicationControllersResource      = "replicationcontrollers"
	LimitRangesResource                 = "limitranges"
	PersistentVolumeClaimsResource      = "persistentvolumeclaims"
	PersistentVolumesResource           = "persistentvolumes"
	LeasesResource                      = "leases"
	ClusterResourceQuotasResource       = "clusterresourcequotas"
	NodeMetricsResource                 = "nodes/metrics"
	NodeSpecResource                    = "nodes/spec"
	NodeProxyResource                   = "nodes/proxy"
	NodeStats                           = "nodes/stats"
	HorizontalPodAutoscalersRecource    = "horizontalpodautoscalers"
	DatadogMetricsResource              = "datadogmetrics"
	DatadogMetricsStatusResource        = "datadogmetrics/status"
	WpaResource                         = "watermarkpodautoscalers"
	MutatingConfigResource              = "mutatingwebhookconfigurations"
	ValidatingConfigResource            = "validatingwebhookconfigurations"
	SecretsResource                     = "secrets"
	PodDisruptionBudgetsResource        = "poddisruptionbudgets"
	ReplicasetsResource                 = "replicasets"
	DeploymentsResource                 = "deployments"
	StatefulsetsResource                = "statefulsets"
	DaemonsetsResource                  = "daemonsets"
	JobsResource                        = "jobs"
	CronjobsResource                    = "cronjobs"
	StorageClassesResource              = "storageclasses"
	VolumeAttachments                   = "volumeattachments"
	ExtendedDaemonSetReplicaSetResource = "extendeddaemonsetreplicasets"
	ServiceAccountResource              = "serviceaccounts"
	NamespaceResource                   = "namespaces"
	PodSecurityPolicyResource           = "podsecuritypolicies"
	ClusterRoleResource                 = "clusterroles"
	RoleResource                        = "roles"
	ClusterRoleBindingResource          = "clusterrolebindings"
	RoleBindingResource                 = "rolebindings"
	NetworkPolicyResource               = "networkpolicies"
	IngressesResource                   = "ingresses"
	VPAResource                         = "verticalpodautoscalers"
	SubjectAccessReviewResource         = "subjectaccessreviews"

	DatadogTokenResourceName           = "datadogtoken"
	DatadogLeaderElectionResourceName  = "datadog-leader-election"
	DatadogCustomMetricsResourceName   = "datadog-custom-metrics"
	DatadogClusterIDResourceName       = "datadog-cluster-id"
	ExtensionAPIServerAuthResourceName = "extension-apiserver-authentication"
	KubeSystemResourceName             = "kube-system"

	VersionURL = "/version"
	HealthzURL = "/healthz"
	MetricsURL = "/metrics"

	GetVerb    = "get"
	ListVerb   = "list"
	WatchVerb  = "watch"
	UpdateVerb = "update"
	CreateVerb = "create"
	DeleteVerb = "delete"

	ClusterRoleKind    = "ClusterRole"
	RoleKind           = "Role"
	ServiceAccountKind = "ServiceAccount"
)

Datadog env var names

View Source
const (
	DefaultSeccompProfileName string = "localhost/system-probe"

	DefaultOrchestratorExplorerConf string = "orchestrator-explorer-config"

	DefaultKubeStateMetricsCoreConf string = "kube-state-metrics-core-config"

	DefaultAdmissionServiceName = "datadog-admission-controller"
)

default values

Variables

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

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

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

Functions

func DefaultedClusterAgentToken

func DefaultedClusterAgentToken(ddaStatus *DatadogAgentStatus) string

DefaultedClusterAgentToken returns the autogenerated token used for the communication between the agents and the DCA. If the token has not been autogenerated, this function returns an empty string.

func FeatureOverride

func FeatureOverride(dda *DatadogAgentSpec, dso *DatadogAgentSpec)

FeatureOverride defaults the feature section of the DatadogAgent TODO surface in the status when Overrides are not possible. Security agent requires the System Probe

func GetDefaultLivenessProbe

func GetDefaultLivenessProbe() *corev1.Probe

GetDefaultLivenessProbe creates a all defaulted LivenessProbe

func GetDefaultReadinessProbe

func GetDefaultReadinessProbe() *corev1.Probe

GetDefaultReadinessProbe creates a all defaulted ReadynessProbe

func IsValidCustomConfigSpec

func IsValidCustomConfigSpec(ccs *CustomConfigSpec) error

IsValidCustomConfigSpec used to check if a CustomConfigSpec is properly set

func IsValidDatadogAgent

func IsValidDatadogAgent(spec *DatadogAgentSpec) error

IsValidDatadogAgent use to check if a DatadogAgentSpec is valid

func IsValidDatadogMonitor

func IsValidDatadogMonitor(spec *DatadogMonitorSpec) error

IsValidDatadogMonitor use to check if a DatadogMonitorSpec is valid by checking that the required fields are defined

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type APMSpec

type APMSpec struct {
	// Enable this to enable APM and tracing, on port 8126.
	// See also: https://github.com/DataDog/docker-dd-agent#tracing-from-the-host
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// Number of port to expose on the host.
	// If specified, this must be a valid port number, 0 < x < 65536.
	// If HostNetwork is specified, this must match ContainerPort.
	// Most containers do not need this.
	//
	// +optional
	HostPort *int32 `json:"hostPort,omitempty"`

	// UnixDomainSocket socket configuration.
	// See also: https://docs.datadoghq.com/agent/kubernetes/apm/?tab=helm#agent-environment-variables
	// +optional
	UnixDomainSocket *APMUnixDomainSocketSpec `json:"unixDomainSocket,omitempty"`

	// The Datadog Agent supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Datadog APM Agent resource requests and limits.
	// Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class.
	// See also: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

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

APMSpec contains the Trace Agent configuration. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgentApm

func DefaultDatadogAgentSpecAgentApm(agent *DatadogAgentSpecAgentSpec) *APMSpec

DefaultDatadogAgentSpecAgentApm used to default an APMSpec return the defaulted APMSpec

func (*APMSpec) DeepCopy

func (in *APMSpec) DeepCopy() *APMSpec

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

func (*APMSpec) DeepCopyInto

func (in *APMSpec) DeepCopyInto(out *APMSpec)

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

type APMUnixDomainSocketSpec

type APMUnixDomainSocketSpec struct {
	// Enable APM over Unix Domain Socket
	// See also: https://docs.datadoghq.com/agent/kubernetes/apm/?tab=helm#agent-environment-variables
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Define the host APM socket filepath used when APM over Unix Domain Socket is enabled.
	// (default value: /var/run/datadog/apm.sock)
	// See also: https://docs.datadoghq.com/agent/kubernetes/apm/?tab=helm#agent-environment-variables
	// +optional
	HostFilepath *string `json:"hostFilepath,omitempty"`
}

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

func DefaultDatadogAgentSpecAgentApmUDS

func DefaultDatadogAgentSpecAgentApmUDS(apm *APMSpec) *APMUnixDomainSocketSpec

DefaultDatadogAgentSpecAgentApmUDS used to default APMUnixDomainSocketSpec rreturn the defaulted APMUnixDomainSocketSpec

func (*APMUnixDomainSocketSpec) DeepCopy

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

func (*APMUnixDomainSocketSpec) DeepCopyInto

func (in *APMUnixDomainSocketSpec) DeepCopyInto(out *APMUnixDomainSocketSpec)

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

type AdmissionControllerConfig

type AdmissionControllerConfig struct {
	// Enable the admission controller to be able to inject APM/Dogstatsd config
	// and standard tags (env, service, version) automatically into your pods.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// MutateUnlabelled enables injecting config without having the pod label 'admission.datadoghq.com/enabled="true"'.
	// +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"`
}

AdmissionControllerConfig contains the configuration of the admission controller in Cluster Agent. +k8s:openapi-gen=true

func DefaultAdmissionController

func DefaultAdmissionController(conf *ClusterAgentConfig) *AdmissionControllerConfig

DefaultAdmissionController defaults the Admission Controller's config in the Cluster Agent's config

func (*AdmissionControllerConfig) DeepCopy

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

func (*AdmissionControllerConfig) DeepCopyInto

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

type AgentCredentials

type AgentCredentials struct {
	DatadogCredentials `json:",inline"`

	// This needs to be at least 32 characters a-zA-z.
	// It is a preshared key between the node agents and the cluster agent.
	// +optional
	Token string `json:"token,omitempty"`

	// UseSecretBackend use the Agent secret backend feature for retreiving all credentials needed by
	// the different components: Agent, Cluster, Cluster-Checks.
	// default value is false.
	UseSecretBackend *bool `json:"useSecretBackend,omitempty"`
}

AgentCredentials contains credentials values to configure the Agent. +k8s:openapi-gen=true

func (*AgentCredentials) DeepCopy

func (in *AgentCredentials) DeepCopy() *AgentCredentials

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

func (*AgentCredentials) DeepCopyInto

func (in *AgentCredentials) DeepCopyInto(out *AgentCredentials)

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

type CRISocketConfig

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

	// Path to the container runtime socket (if different from Docker).
	// This is supported starting from agent 6.6.0.
	// +optional
	CriSocketPath *string `json:"criSocketPath,omitempty"`
}

CRISocketConfig contains the CRI socket configuration parameters. +k8s:openapi-gen=true

func DefaultContainerSocket

func DefaultContainerSocket(config *NodeAgentConfig) *CRISocketConfig

DefaultContainerSocket defaults the socket configuration for the Datadog Agent

func (*CRISocketConfig) DeepCopy

func (in *CRISocketConfig) DeepCopy() *CRISocketConfig

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

func (*CRISocketConfig) DeepCopyInto

func (in *CRISocketConfig) DeepCopyInto(out *CRISocketConfig)

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

type ClusterAgentConfig

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

	ExternalMetrics *ExternalMetricsConfig `json:"externalMetrics,omitempty"`

	// Configure the Admission Controller.
	AdmissionController *AdmissionControllerConfig `json:"admissionController,omitempty"`

	// Enable the Cluster Checks and Endpoint Checks feature on both the Cluster Agent and the daemonset.
	// See also:
	// https://docs.datadoghq.com/agent/cluster_agent/clusterchecks/
	// https://docs.datadoghq.com/agent/cluster_agent/endpointschecks/
	// Autodiscovery via Kube Service annotations is automatically enabled.
	ClusterChecksEnabled *bool `json:"clusterChecksEnabled,omitempty"`

	// Enable this to start event collection from the kubernetes API.
	// See also: https://docs.datadoghq.com/agent/cluster_agent/event_collection/
	// +optional
	CollectEvents *bool `json:"collectEvents,omitempty"`

	// Set logging verbosity, valid log levels are:
	// trace, debug, info, warn, error, critical, and off
	LogLevel *string `json:"logLevel,omitempty"`

	// Datadog Cluster Agent resource requests and limits.
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

	// Confd Provide additional cluster check configurations. Each key will become a file in /conf.d.
	// see https://docs.datadoghq.com/agent/autodiscovery/ for more details.
	// +optional
	Confd *ConfigDirSpec `json:"confd,omitempty"`

	// The Datadog Agent supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

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

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

ClusterAgentConfig contains the configuration of the Cluster Agent. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecClusterAgentConfig

func DefaultDatadogAgentSpecClusterAgentConfig(dca *DatadogAgentSpecClusterAgentSpec) *ClusterAgentConfig

DefaultDatadogAgentSpecClusterAgentConfig used to default an ClusterAgentConfig return the defaulted ClusterAgentConfig

func (*ClusterAgentConfig) DeepCopy

func (in *ClusterAgentConfig) DeepCopy() *ClusterAgentConfig

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

func (*ClusterAgentConfig) DeepCopyInto

func (in *ClusterAgentConfig) DeepCopyInto(out *ClusterAgentConfig)

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

type ClusterChecksRunnerConfig

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

	// Datadog Cluster Checks Runner resource requests and limits.
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

	// Set logging verbosity, valid log levels are:
	// trace, debug, info, warn, error, critical, and off
	LogLevel *string `json:"logLevel,omitempty"`

	// The Datadog Agent supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

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

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

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

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

ClusterChecksRunnerConfig contains the configuration of the Cluster Checks Runner. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecClusterChecksRunnerConfig

func DefaultDatadogAgentSpecClusterChecksRunnerConfig(clc *DatadogAgentSpecClusterChecksRunnerSpec) *ClusterChecksRunnerConfig

DefaultDatadogAgentSpecClusterChecksRunnerConfig used to default an ClusterChecksRunnerConfig return the defaulted ClusterChecksRunnerConfig

func (*ClusterChecksRunnerConfig) DeepCopy

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

func (*ClusterChecksRunnerConfig) DeepCopyInto

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

type ComplianceSpec

type ComplianceSpec struct {
	// Enables continuous compliance monitoring.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

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

	// Config dir containing compliance benchmarks.
	// +optional
	ConfigDir *ConfigDirSpec `json:"configDir,omitempty"`
}

ComplianceSpec contains configuration for continuous compliance. +k8s:openapi-gen=true

func (*ComplianceSpec) DeepCopy

func (in *ComplianceSpec) DeepCopy() *ComplianceSpec

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

func (*ComplianceSpec) DeepCopyInto

func (in *ComplianceSpec) DeepCopyInto(out *ComplianceSpec)

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

type ConfigDirSpec

type ConfigDirSpec struct {
	// ConfigMapName name of a ConfigMap used to mount a directory.
	ConfigMapName string `json:"configMapName,omitempty"`
	// items mapping between configMap data key and file path mount.
	// +optional
	// +listType=map
	// +listMapKey=key
	Items []corev1.KeyToPath `json:"items,omitempty"`
}

ConfigDirSpec contains config file directory configuration. +k8s:openapi-gen=true

func (*ConfigDirSpec) DeepCopy

func (in *ConfigDirSpec) DeepCopy() *ConfigDirSpec

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

func (*ConfigDirSpec) DeepCopyInto

func (in *ConfigDirSpec) DeepCopyInto(out *ConfigDirSpec)

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

type ConfigFileConfigMapSpec

type ConfigFileConfigMapSpec struct {
	// The name of source ConfigMap.
	Name string `json:"name,omitempty"`
	// FileKey corresponds to the key used in the ConfigMap.Data to store the configuration file content.
	FileKey string `json:"fileKey,omitempty"`
}

ConfigFileConfigMapSpec contains configMap information used to store a config file. +k8s:openapi-gen=true

func (*ConfigFileConfigMapSpec) DeepCopy

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

func (*ConfigFileConfigMapSpec) DeepCopyInto

func (in *ConfigFileConfigMapSpec) DeepCopyInto(out *ConfigFileConfigMapSpec)

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

type CustomConfigSpec

type CustomConfigSpec struct {
	// ConfigData corresponds to the configuration file content.
	ConfigData *string `json:"configData,omitempty"`
	// Enable to specify a reference to an already existing ConfigMap.
	ConfigMap *ConfigFileConfigMapSpec `json:"configMap,omitempty"`
}

CustomConfigSpec Allow to put custom configuration for the agent, corresponding to the datadog-cluster.yaml or datadog.yaml config file the configuration can be provided in the 'configData' field as raw data, or in a configmap thanks to `configMap` field. Important: `configData` and `configMap` can't be set together. +k8s:openapi-gen=true

func (*CustomConfigSpec) DeepCopy

func (in *CustomConfigSpec) DeepCopy() *CustomConfigSpec

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

func (*CustomConfigSpec) DeepCopyInto

func (in *CustomConfigSpec) DeepCopyInto(out *CustomConfigSpec)

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

type DSDUnixDomainSocketSpec

type DSDUnixDomainSocketSpec struct {
	// Enable APM over Unix Domain Socket.
	// See also: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Define the host APM socket filepath used when APM over Unix Domain Socket is enabled.
	// (default value: /var/run/datadog/statsd.sock).
	// See also: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/
	// +optional
	HostFilepath *string `json:"hostFilepath,omitempty"`
}

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

func DefaultConfigDogstatsdUDS

func DefaultConfigDogstatsdUDS(dsd *DogstatsdConfig) *DSDUnixDomainSocketSpec

DefaultConfigDogstatsdUDS used to default DSDUnixDomainSocketSpec return the defaulted DSDUnixDomainSocketSpec

func (*DSDUnixDomainSocketSpec) DeepCopy

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

func (*DSDUnixDomainSocketSpec) DeepCopyInto

func (in *DSDUnixDomainSocketSpec) DeepCopyInto(out *DSDUnixDomainSocketSpec)

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

type DaemonSetDeploymentStrategy

type DaemonSetDeploymentStrategy struct {
	// The update strategy used for the DaemonSet.
	UpdateStrategyType *appsv1.DaemonSetUpdateStrategyType `json:"updateStrategyType,omitempty"`
	// Configure the rolling updater strategy of the DaemonSet or the ExtendedDaemonSet.
	RollingUpdate DaemonSetRollingUpdateSpec `json:"rollingUpdate,omitempty"`
	// Configure the canary deployment configuration using ExtendedDaemonSet.
	Canary *edsdatadoghqv1alpha1.ExtendedDaemonSetSpecStrategyCanary `json:"canary,omitempty"`
	// The reconcile frequency of the ExtendDaemonSet.
	ReconcileFrequency *metav1.Duration `json:"reconcileFrequency,omitempty"`
}

DaemonSetDeploymentStrategy contains the node Agent deployment configuration. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecDatadogAgentStrategy

func DefaultDatadogAgentSpecDatadogAgentStrategy(agent *DatadogAgentSpecAgentSpec) *DaemonSetDeploymentStrategy

DefaultDatadogAgentSpecDatadogAgentStrategy used to default a DaemonSetDeploymentStrategy return the defaulted DaemonSetDeploymentStrategy

func (*DaemonSetDeploymentStrategy) DeepCopy

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

func (*DaemonSetDeploymentStrategy) DeepCopyInto

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

type DaemonSetRollingUpdateSpec

type DaemonSetRollingUpdateSpec struct {
	// The maximum number of DaemonSet pods that can be unavailable during the
	// update. Value can be an absolute number (ex: 5) or a percentage of total
	// number of DaemonSet pods at the start of the update (ex: 10%). Absolute
	// number is calculated from percentage by rounding up.
	// This cannot be 0.
	// Default value is 1.
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
	// MaxPodSchedulerFailure the maxinum number of not scheduled on its Node due to a
	// scheduler failure: resource constraints. Value can be an absolute number (ex: 5) or a percentage of total
	// number of DaemonSet pods at the start of the update (ex: 10%). Absolute
	MaxPodSchedulerFailure *intstr.IntOrString `json:"maxPodSchedulerFailure,omitempty"`
	// The maxium number of pods created in parallel.
	// Default value is 250.
	MaxParallelPodCreation *int32 `json:"maxParallelPodCreation,omitempty"`
	// SlowStartIntervalDuration the duration between to 2
	// Default value is 1min.
	SlowStartIntervalDuration *metav1.Duration `json:"slowStartIntervalDuration,omitempty"`
	// SlowStartAdditiveIncrease
	// Value can be an absolute number (ex: 5) or a percentage of total
	// number of DaemonSet pods at the start of the update (ex: 10%).
	// Default value is 5.
	SlowStartAdditiveIncrease *intstr.IntOrString `json:"slowStartAdditiveIncrease,omitempty"`
}

DaemonSetRollingUpdateSpec contains configuration fields of the rolling update strategy. The configuration is shared between DaemonSet and ExtendedDaemonSet. +k8s:openapi-gen=true

func (*DaemonSetRollingUpdateSpec) DeepCopy

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

func (*DaemonSetRollingUpdateSpec) DeepCopyInto

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

type DaemonSetStatus

type DaemonSetStatus struct {
	Desired   int32 `json:"desired"`
	Current   int32 `json:"current"`
	Ready     int32 `json:"ready"`
	Available int32 `json:"available"`
	UpToDate  int32 `json:"upToDate"`

	Status      string       `json:"status,omitempty"`
	State       string       `json:"state,omitempty"`
	LastUpdate  *metav1.Time `json:"lastUpdate,omitempty"`
	CurrentHash string       `json:"currentHash,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

func (*DaemonSetStatus) DeepCopy

func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus

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

func (*DaemonSetStatus) DeepCopyInto

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 Datadog Operator. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:storageversion +kubebuilder:resource:path=datadogagents,shortName=dd +kubebuilder:printcolumn:name="active",type="string",JSONPath=".status.conditions[?(@.type=='Active')].status" +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.

type DatadogAgentCondition

type DatadogAgentCondition struct {
	// Type of DatadogAgent condition.
	Type DatadogAgentConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Last time the condition was updated.
	// +optional
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

DatadogAgentCondition describes the state of a DatadogAgent at a certain point. +k8s:openapi-gen=true

func (*DatadogAgentCondition) DeepCopy

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

func (*DatadogAgentCondition) DeepCopyInto

func (in *DatadogAgentCondition) DeepCopyInto(out *DatadogAgentCondition)

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

type DatadogAgentConditionType

type DatadogAgentConditionType string

DatadogAgentConditionType type use to represent a DatadogAgent condition.

const (
	// DatadogAgentConditionTypeActive DatadogAgent is active.
	DatadogAgentConditionTypeActive DatadogAgentConditionType = "Active"
	// DatadogAgentConditionTypeReconcileError the controller wasn't able to run properly the reconcile loop with this DatadogAgent.
	DatadogAgentConditionTypeReconcileError DatadogAgentConditionType = "ReconcileError"
	// DatadogAgentConditionTypeSecretError the required Secret doesn't exist.
	DatadogAgentConditionTypeSecretError DatadogAgentConditionType = "SecretError"

	// DatadogMetricsActive forwarding metrics and events to Datadog is active.
	DatadogMetricsActive DatadogAgentConditionType = "ActiveDatadogMetrics"
	// DatadogMetricsError cannot forward deployment metrics and events to Datadog.
	DatadogMetricsError DatadogAgentConditionType = "DatadogMetricsError"
)

type DatadogAgentList

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

DatadogAgentList contains a list of DatadogAgent. +kubebuilder:object:root=true

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 {
	// Configure the credentials needed to run Agents. If not set, then the credentials
	// set in the DatadogOperator will be used.
	Credentials *AgentCredentials `json:"credentials,omitempty"`

	// Features running on the Agent and Cluster Agent.
	// +optional
	Features DatadogFeatures `json:"features,omitempty"`

	// The desired state of the Agent as an extended daemonset.
	// Contains the Node Agent configuration and deployment strategy.
	// +optional
	Agent DatadogAgentSpecAgentSpec `json:"agent,omitempty"`

	// The desired state of the Cluster Agent as a deployment.
	// +optional
	ClusterAgent DatadogAgentSpecClusterAgentSpec `json:"clusterAgent,omitempty"`

	// The desired state of the Cluster Checks Runner as a deployment.
	// +optional
	ClusterChecksRunner DatadogAgentSpecClusterChecksRunnerSpec `json:"clusterChecksRunner,omitempty"`

	// Set a unique cluster name to allow scoping hosts and Cluster Checks Runner easily.
	// +optional
	ClusterName string `json:"clusterName,omitempty"`

	// The site of the Datadog intake to send Agent data to.
	// Set to 'datadoghq.eu' to send data to the EU site.
	// +optional
	Site string `json:"site,omitempty"`

	// Registry to use for all Agent images (default gcr.io/datadoghq).
	// Use public.ecr.aws/datadog for AWS
	// Use docker.io/datadog for DockerHub
	// +optional
	Registry *string `json:"registry,omitempty"`
}

DatadogAgentSpec defines the desired state of DatadogAgent. +k8s:openapi-gen=true

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 DatadogAgentSpecAgentSpec

type DatadogAgentSpecAgentSpec struct {

	// Enabled
	Enabled *bool `json:"enabled,omitempty"`

	// UseExtendedDaemonset use ExtendedDaemonset for Agent deployment.
	// default value is false.
	UseExtendedDaemonset *bool `json:"useExtendedDaemonset,omitempty"`

	// The container image of the Datadog Agent.
	Image *ImageConfig `json:"image,omitempty"`

	// Name of the Daemonset to create or migrate from.
	// +optional
	DaemonsetName string `json:"daemonsetName,omitempty"`

	// Agent configuration.
	Config *NodeAgentConfig `json:"config,omitempty"`

	// RBAC configuration of the Agent.
	Rbac *RbacConfig `json:"rbac,omitempty"`

	// Update strategy configuration for the DaemonSet.
	DeploymentStrategy *DaemonSetDeploymentStrategy `json:"deploymentStrategy,omitempty"`

	// AdditionalAnnotations provide annotations that will be added to the Agent Pods.
	AdditionalAnnotations map[string]string `json:"additionalAnnotations,omitempty"`

	// AdditionalLabels provide labels that will be added to the Agent Pods.
	AdditionalLabels map[string]string `json:"additionalLabels,omitempty"`

	// KeepLabels allows the specification of labels not managed by the Operator that will be kept on Agent DaemonSet.
	// All labels containing 'datadoghq.com' are always included. This field uses glob syntax.
	KeepLabels string `json:"keepLabels,omitempty"`

	// KeepAnnotations allows the specification of annotations not managed by the Operator that will be kept on Agent DaemonSet.
	// All annotations containing 'datadoghq.com' are always included. This field uses glob syntax.
	KeepAnnotations string `json:"keepAnnotations,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 will be default or zero if there is no default.
	PriorityClassName string `json:"priorityClassName,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" protobuf:"bytes,6,opt,name=dnsPolicy,casttype=DNSPolicy"`
	// 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"`

	// Host networking requested for this pod. Use the host's network namespace.
	// If this option is set, the ports that will be used must be specified.
	// Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostNetwork bool `json:"hostNetwork,omitempty"`
	// Use the host's pid namespace.
	// Optional: Default to false.
	// +k8s:conversion-gen=false
	// +optional
	HostPID bool `json:"hostPID,omitempty"`

	// Environment variables for all Datadog Agents.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Trace Agent configuration
	// +optional
	Apm *APMSpec `json:"apm,omitempty"`

	// Log Agent configuration
	// +optional
	Log *LogCollectionConfig `json:"log,omitempty"`

	// Process Agent configuration
	// +optional
	Process *ProcessSpec `json:"process,omitempty"`

	// SystemProbe configuration
	// +optional
	SystemProbe *SystemProbeSpec `json:"systemProbe,omitempty"`

	// Security Agent configuration
	// +optional
	Security *SecuritySpec `json:"security,omitempty"`

	// Allow to put custom configuration for the agent, corresponding to the datadog.yaml config file.
	// See https://docs.datadoghq.com/agent/guide/agent-configuration-files/?tab=agentv6 for more details.
	// +optional
	CustomConfig *CustomConfigSpec `json:"customConfig,omitempty"`

	// Provide Agent Network Policy configuration
	// +optional
	NetworkPolicy *NetworkPolicySpec `json:"networkPolicy,omitempty"`

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

	// Options to customize the internal traffic policy service
	// +optional
	LocalService *LocalService `json:"localService,omitempty"`
}

DatadogAgentSpecAgentSpec defines the desired state of the node Agent. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgent

func DefaultDatadogAgentSpecAgent(agent *DatadogAgentSpecAgentSpec) *DatadogAgentSpecAgentSpec

DefaultDatadogAgentSpecAgent used to default an DatadogAgentSpecAgentSpec return the defaulted DatadogAgentSpecAgentSpec

func (*DatadogAgentSpecAgentSpec) DeepCopy

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

func (*DatadogAgentSpecAgentSpec) DeepCopyInto

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

type DatadogAgentSpecClusterAgentSpec

type DatadogAgentSpecClusterAgentSpec struct {

	// Enabled
	Enabled *bool `json:"enabled,omitempty"`

	// The container image of the Datadog Cluster Agent.
	Image *ImageConfig `json:"image,omitempty"`

	// Name of the Cluster Agent Deployment to create or migrate from.
	// +optional
	DeploymentName string `json:"deploymentName,omitempty"`

	// Cluster Agent configuration.
	Config *ClusterAgentConfig `json:"config,omitempty"`

	// Allow to put custom configuration for the Agent, corresponding to the datadog-cluster.yaml config file.
	// +optional
	CustomConfig *CustomConfigSpec `json:"customConfig,omitempty"`

	// RBAC configuration of the Datadog Cluster Agent.
	Rbac *RbacConfig `json:"rbac,omitempty"`

	// Number of the Cluster Agent replicas.
	Replicas *int32 `json:"replicas,omitempty"`

	// AdditionalAnnotations provide annotations that will be added to the Cluster Agent Pods.
	AdditionalAnnotations map[string]string `json:"additionalAnnotations,omitempty"`

	// AdditionalLabels provide labels that will be added to the Cluster Agent Pods.
	AdditionalLabels map[string]string `json:"additionalLabels,omitempty"`

	// KeepLabels allows the specification of labels not managed by the Operator that will be kept on ClusterAgent Deployment.
	// All labels containing 'datadoghq.com' are always included. This field uses glob syntax.
	KeepLabels string `json:"keepLabels,omitempty"`

	// KeepAnnotations allows the specification of annotations not managed by the Operator that will be kept on ClusterAgent Deployment.
	// All annotations containing 'datadoghq.com' are always included. This field uses glob syntax.
	KeepAnnotations string `json:"keepAnnotations,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 will be 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"`

	// If specified, the Cluster-Agent pod's tolerations.
	// +optional
	// +listType=atomic
	Tolerations []corev1.Toleration `json:"tolerations,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"`

	// Provide Cluster Agent Network Policy configuration.
	// +optional
	NetworkPolicy *NetworkPolicySpec `json:"networkPolicy,omitempty"`
}

DatadogAgentSpecClusterAgentSpec defines the desired state of the cluster Agent. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecClusterAgent

func DefaultDatadogAgentSpecClusterAgent(clusterAgent *DatadogAgentSpecClusterAgentSpec) *DatadogAgentSpecClusterAgentSpec

DefaultDatadogAgentSpecClusterAgent used to default an DatadogAgentSpecClusterAgentSpec Mutate the internal DatadogAgentSpecClusterAgent throughout the method return the defaulted DatadogAgentSpecClusterAgentSpec to update the status

func (*DatadogAgentSpecClusterAgentSpec) DeepCopy

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

func (*DatadogAgentSpecClusterAgentSpec) DeepCopyInto

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

type DatadogAgentSpecClusterChecksRunnerSpec

type DatadogAgentSpecClusterChecksRunnerSpec struct {

	// Enabled
	Enabled *bool `json:"enabled,omitempty"`

	// The container image of the Datadog Cluster Checks Runner.
	Image *ImageConfig `json:"image,omitempty"`

	// Name of the cluster checks deployment to create or migrate from.
	// +optional
	DeploymentName string `json:"deploymentName,omitempty"`

	// Agent configuration.
	Config *ClusterChecksRunnerConfig `json:"config,omitempty"`

	// Allow to put custom configuration for the Agent, corresponding to the datadog.yaml config file.
	// See https://docs.datadoghq.com/agent/guide/agent-configuration-files/?tab=agentv6 for more details.
	// +optional
	CustomConfig *CustomConfigSpec `json:"customConfig,omitempty"`

	// RBAC configuration of the Datadog Cluster Checks Runner.
	Rbac *RbacConfig `json:"rbac,omitempty"`

	// Number of the Cluster Checks Runner replicas.
	Replicas *int32 `json:"replicas,omitempty"`

	// AdditionalAnnotations provide annotations that will be added to the cluster checks runner Pods.
	AdditionalAnnotations map[string]string `json:"additionalAnnotations,omitempty"`

	// AdditionalLabels provide labels that will be added to the cluster checks runner Pods.
	AdditionalLabels map[string]string `json:"additionalLabels,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 will be 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"`

	// If specified, the Cluster-Checks pod's tolerations.
	// +optional
	// +listType=atomic
	Tolerations []corev1.Toleration `json:"tolerations,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"`

	// Provide Cluster Checks Runner Network Policy configuration.
	// +optional
	NetworkPolicy *NetworkPolicySpec `json:"networkPolicy,omitempty"`
}

DatadogAgentSpecClusterChecksRunnerSpec defines the desired state of the Cluster Checks Runner. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecClusterChecksRunner

func DefaultDatadogAgentSpecClusterChecksRunner(clusterChecksRunner *DatadogAgentSpecClusterChecksRunnerSpec) *DatadogAgentSpecClusterChecksRunnerSpec

DefaultDatadogAgentSpecClusterChecksRunner used to default an DatadogAgentSpecClusterChecksRunnerSpec return the defaulted DatadogAgentSpecClusterChecksRunnerSpec

func (*DatadogAgentSpecClusterChecksRunnerSpec) DeepCopy

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

func (*DatadogAgentSpecClusterChecksRunnerSpec) DeepCopyInto

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 running properly.
	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 {
	// DefaultOverride contains attributes that were not configured that the runtime defaulted.
	// +optional
	// +kubebuilder:pruning:PreserveUnknownFields
	DefaultOverride *DatadogAgentSpec `json:"defaultOverride,omitempty"`

	// The actual state of the Agent as an extended daemonset.
	// +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"`

	// Conditions Represents the latest available observations of a DatadogAgent's current state.
	// +listType=map
	// +listMapKey=type
	Conditions []DatadogAgentCondition `json:"conditions,omitempty"`
}

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

func DefaultDatadogAgent

func DefaultDatadogAgent(dda *DatadogAgent) *DatadogAgentStatus

DefaultDatadogAgent defaults the DatadogAgent

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 Set this to your Datadog API key before the Agent runs.
	// See also: https://app.datadoghq.com/account/settings#agent/kubernetes
	APIKey string `json:"apiKey,omitempty"`

	// APIKeyExistingSecret is DEPRECATED.
	// In order to pass the API key through an existing secret, please consider "apiSecret" instead.
	// If set, this parameter takes precedence over "apiKey".
	// +optional
	// +deprecated
	APIKeyExistingSecret string `json:"apiKeyExistingSecret,omitempty"`

	// APISecret Use existing Secret which stores API key instead of creating a new one.
	// If set, this parameter takes precedence over "apiKey" and "apiKeyExistingSecret".
	// +optional
	APISecret *Secret `json:"apiSecret,omitempty"`

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

	// AppKeyExistingSecret is DEPRECATED.
	// In order to pass the APP key through an existing secret, please consider "appSecret" instead.
	// If set, this parameter takes precedence over "appKey".
	// +optional
	// +deprecated
	AppKeyExistingSecret string `json:"appKeyExistingSecret,omitempty"`

	// APPSecret Use existing Secret which stores API key instead of creating a new one.
	// If set, this parameter takes precedence over "apiKey" and "appKeyExistingSecret".
	// +optional
	APPSecret *Secret `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 {
	// OrchestratorExplorer configuration.
	OrchestratorExplorer *OrchestratorExplorerConfig `json:"orchestratorExplorer,omitempty"`
	// KubeStateMetricsCore configuration.
	KubeStateMetricsCore *KubeStateMetricsCore `json:"kubeStateMetricsCore,omitempty"`
	// PrometheusScrape configuration.
	PrometheusScrape *PrometheusScrapeConfig `json:"prometheusScrape,omitempty"`
	// NetworkMonitoring configuration.
	NetworkMonitoring *NetworkMonitoringConfig `json:"networkMonitoring,omitempty"`
	// LogCollection configuration.
	LogCollection *LogCollectionConfig `json:"logCollection,omitempty"`
}

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

func DefaultFeatures

func DefaultFeatures(dda *DatadogAgent) *DatadogFeatures

DefaultFeatures used to initialized the Features' default values if necessary

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 DatadogMetric

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

	Spec   DatadogMetricSpec   `json:"spec,omitempty"`
	Status DatadogMetricStatus `json:"status,omitempty"`
}

DatadogMetric allows autoscaling on arbitrary Datadog query +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=datadogmetrics,scope=Namespaced +kubebuilder:printcolumn:name="active",type="string",JSONPath=".status.conditions[?(@.type=='Active')].status" +kubebuilder:printcolumn:name="valid",type="string",JSONPath=".status.conditions[?(@.type=='Valid')].status" +kubebuilder:printcolumn:name="value",type="string",JSONPath=".status.currentValue" +kubebuilder:printcolumn:name="references",type="string",JSONPath=".status.autoscalerReferences" +kubebuilder:printcolumn:name="update time",type="date",JSONPath=".status.conditions[?(@.type=='Updated')].lastUpdateTime" +k8s:openapi-gen=true +genclient

func (*DatadogMetric) DeepCopy

func (in *DatadogMetric) DeepCopy() *DatadogMetric

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

func (*DatadogMetric) DeepCopyInto

func (in *DatadogMetric) DeepCopyInto(out *DatadogMetric)

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

func (*DatadogMetric) DeepCopyObject

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

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

type DatadogMetricCondition

type DatadogMetricCondition struct {
	// Type of DatadogMetric condition.
	Type DatadogMetricConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Last time the condition was updated.
	// +optional
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

DatadogMetricCondition describes the state of a DatadogMetric at a certain point. +k8s:openapi-gen=true

func (*DatadogMetricCondition) DeepCopy

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

func (*DatadogMetricCondition) DeepCopyInto

func (in *DatadogMetricCondition) DeepCopyInto(out *DatadogMetricCondition)

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

type DatadogMetricConditionType

type DatadogMetricConditionType string

DatadogMetricConditionType type use to represent a DatadogMetric condition

const (
	// DatadogMetricConditionTypeActive DatadogMetric is active (referenced by an HPA), Datadog will only be queried for active metrics
	DatadogMetricConditionTypeActive DatadogMetricConditionType = "Active"
	// DatadogMetricConditionTypeUpdated DatadogMetric is updated
	DatadogMetricConditionTypeUpdated DatadogMetricConditionType = "Updated"
	// DatadogMetricConditionTypeValid DatadogMetric.spec.query is invalid
	DatadogMetricConditionTypeValid DatadogMetricConditionType = "Valid"
	// DatadogMetricConditionTypeError the controller wasn't able to handle this DatadogMetric
	DatadogMetricConditionTypeError DatadogMetricConditionType = "Error"
)

type DatadogMetricList

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

DatadogMetricList contains a list of DatadogMetric +kubebuilder:object:root=true

func (*DatadogMetricList) DeepCopy

func (in *DatadogMetricList) DeepCopy() *DatadogMetricList

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

func (*DatadogMetricList) DeepCopyInto

func (in *DatadogMetricList) DeepCopyInto(out *DatadogMetricList)

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

func (*DatadogMetricList) DeepCopyObject

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

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

type DatadogMetricSpec

type DatadogMetricSpec struct {
	// Query is the raw datadog query
	Query string `json:"query,omitempty"`
	// ExternalMetricName is reserved for internal use
	ExternalMetricName string `json:"externalMetricName,omitempty"`
	// MaxAge provides the max age for the metric query (overrides the default setting
	// `external_metrics_provider.max_age`)
	// +optional
	MaxAge metav1.Duration `json:"maxAge,omitempty"`
}

DatadogMetricSpec defines the desired state of DatadogMetric

func (*DatadogMetricSpec) DeepCopy

func (in *DatadogMetricSpec) DeepCopy() *DatadogMetricSpec

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

func (*DatadogMetricSpec) DeepCopyInto

func (in *DatadogMetricSpec) DeepCopyInto(out *DatadogMetricSpec)

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

type DatadogMetricStatus

type DatadogMetricStatus struct {
	// Conditions Represents the latest available observations of a DatadogMetric's current state.
	// +listType=map
	// +listMapKey=type
	Conditions []DatadogMetricCondition `json:"conditions,omitempty"`
	// Value is the latest value of the metric
	Value string `json:"currentValue"`
	// List of autoscalers currently using this DatadogMetric
	AutoscalerReferences string `json:"autoscalerReferences,omitempty"`
}

DatadogMetricStatus defines the observed state of DatadogMetric

func (*DatadogMetricStatus) DeepCopy

func (in *DatadogMetricStatus) DeepCopy() *DatadogMetricStatus

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

func (*DatadogMetricStatus) DeepCopyInto

func (in *DatadogMetricStatus) DeepCopyInto(out *DatadogMetricStatus)

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

type DatadogMonitor

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

	Spec   DatadogMonitorSpec   `json:"spec,omitempty"`
	Status DatadogMonitorStatus `json:"status,omitempty"`
}

DatadogMonitor allows to define and manage Monitors from your Kubernetes Cluster +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=datadogmonitors,scope=Namespaced +kubebuilder:printcolumn:name="id",type="string",JSONPath=".status.id" +kubebuilder:printcolumn:name="monitor state",type="string",JSONPath=".status.monitorState" +kubebuilder:printcolumn:name="last transition",type="string",JSONPath=".status.monitorStateLastTransitionTime" +kubebuilder:printcolumn:name="last sync",type="string",format="date",JSONPath=".status.monitorStateLastUpdateTime" +kubebuilder:printcolumn:name="sync status",type="string",JSONPath=".status.syncStatus" +kubebuilder:printcolumn:name="age",type="date",JSONPath=".metadata.creationTimestamp" +k8s:openapi-gen=true +genclient

func (*DatadogMonitor) DeepCopy

func (in *DatadogMonitor) DeepCopy() *DatadogMonitor

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

func (*DatadogMonitor) DeepCopyInto

func (in *DatadogMonitor) DeepCopyInto(out *DatadogMonitor)

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

func (*DatadogMonitor) DeepCopyObject

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

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

type DatadogMonitorCondition

type DatadogMonitorCondition struct {
	// Type of DatadogMonitor condition
	Type DatadogMonitorConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status corev1.ConditionStatus `json:"status"`
	// Last time the condition transitioned from one status to another.
	// +optional
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`
	// Last time the condition was updated.
	// +optional
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`
	// The reason for the condition's last transition.
	// +optional
	Reason string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	// +optional
	Message string `json:"message,omitempty"`
}

DatadogMonitorCondition describes the current state of a DatadogMonitor +k8s:openapi-gen=true

func (*DatadogMonitorCondition) DeepCopy

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

func (*DatadogMonitorCondition) DeepCopyInto

func (in *DatadogMonitorCondition) DeepCopyInto(out *DatadogMonitorCondition)

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

type DatadogMonitorConditionType

type DatadogMonitorConditionType string

DatadogMonitorConditionType represents a DatadogMonitor condition

const (
	// DatadogMonitorConditionTypeCreated means the DatadogMonitor is created successfully
	DatadogMonitorConditionTypeCreated DatadogMonitorConditionType = "Created"
	// DatadogMonitorConditionTypeActive means the DatadogMonitor is active
	DatadogMonitorConditionTypeActive DatadogMonitorConditionType = "Active"
	// DatadogMonitorConditionTypeUpdated means the DatadogMonitor is updated
	DatadogMonitorConditionTypeUpdated DatadogMonitorConditionType = "Updated"
	// DatadogMonitorConditionTypeError means the DatadogMonitor has an error
	DatadogMonitorConditionTypeError DatadogMonitorConditionType = "Error"
)

type DatadogMonitorDowntimeStatus

type DatadogMonitorDowntimeStatus struct {
	IsDowntimed bool `json:"isDowntimed,omitempty"`
	DowntimeID  int  `json:"downtimeId,omitempty"`
}

DatadogMonitorDowntimeStatus represents the downtime status of a DatadogMonitor

func (*DatadogMonitorDowntimeStatus) DeepCopy

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

func (*DatadogMonitorDowntimeStatus) DeepCopyInto

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

type DatadogMonitorList

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

DatadogMonitorList contains a list of DatadogMonitors +kubebuilder:object:root=true

func (*DatadogMonitorList) DeepCopy

func (in *DatadogMonitorList) DeepCopy() *DatadogMonitorList

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

func (*DatadogMonitorList) DeepCopyInto

func (in *DatadogMonitorList) DeepCopyInto(out *DatadogMonitorList)

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

func (*DatadogMonitorList) DeepCopyObject

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

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

type DatadogMonitorOptions

type DatadogMonitorOptions struct {
	// A message to include with a re-notification.
	EscalationMessage *string `json:"escalationMessage,omitempty"`
	// Time (in seconds) to delay evaluation, as a non-negative integer. For example, if the value is set to 300 (5min),
	// the timeframe is set to last_5m and the time is 7:00, the monitor evaluates data from 6:50 to 6:55.
	// This is useful for AWS CloudWatch and other backfilled metrics to ensure the monitor always has data during evaluation.
	EvaluationDelay *int64 `json:"evaluationDelay,omitempty"`
	// A Boolean indicating whether notifications from this monitor automatically inserts its triggering tags into the title.
	IncludeTags *bool `json:"includeTags,omitempty"`
	// Whether or not the monitor is locked (only editable by creator and admins).
	Locked *bool `json:"locked,omitempty"`
	// Time (in seconds) to allow a host to boot and applications to fully start before starting the evaluation of
	// monitor results. Should be a non negative integer.
	NewHostDelay *int64 `json:"newHostDelay,omitempty"`
	// The number of minutes before a monitor notifies after data stops reporting. Datadog recommends at least 2x the
	// monitor timeframe for metric alerts or 2 minutes for service checks. If omitted, 2x the evaluation timeframe
	// is used for metric alerts, and 24 hours is used for service checks.
	NoDataTimeframe *int64 `json:"noDataTimeframe,omitempty"`
	// A Boolean indicating whether tagged users are notified on changes to this monitor.
	NotifyAudit *bool `json:"notifyAudit,omitempty"`
	// A Boolean indicating whether this monitor notifies when data stops reporting.
	NotifyNoData *bool `json:"notifyNoData,omitempty"`
	// The number of minutes after the last notification before a monitor re-notifies on the current status.
	// It only re-notifies if it’s not resolved.
	RenotifyInterval *int64 `json:"renotifyInterval,omitempty"`
	// A Boolean indicating whether this monitor needs a full window of data before it’s evaluated. We highly
	// recommend you set this to false for sparse metrics, otherwise some evaluations are skipped. Default is false.
	RequireFullWindow *bool `json:"requireFullWindow,omitempty"`
	// The number of hours of the monitor not reporting data before it automatically resolves from a triggered state.
	TimeoutH *int64 `json:"timeoutH,omitempty"`
	// A struct of the different monitor threshold values.
	Thresholds *DatadogMonitorOptionsThresholds `json:"thresholds,omitempty"`
	// A struct of the alerting time window options.
	ThresholdWindows *DatadogMonitorOptionsThresholdWindows `json:"thresholdWindows,omitempty"`
}

DatadogMonitorOptions define the optional parameters of a monitor

func (*DatadogMonitorOptions) DeepCopy

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

func (*DatadogMonitorOptions) DeepCopyInto

func (in *DatadogMonitorOptions) DeepCopyInto(out *DatadogMonitorOptions)

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

type DatadogMonitorOptionsThresholdWindows

type DatadogMonitorOptionsThresholdWindows struct {
	// Describes how long an anomalous metric must be normal before the alert recovers.
	RecoveryWindow *string `json:"recoveryWindow,omitempty"`
	// Describes how long a metric must be anomalous before an alert triggers.
	TriggerWindow *string `json:"triggerWindow,omitempty"`
}

DatadogMonitorOptionsThresholdWindows is a struct of the alerting time window options

func (*DatadogMonitorOptionsThresholdWindows) DeepCopy

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

func (*DatadogMonitorOptionsThresholdWindows) DeepCopyInto

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

type DatadogMonitorOptionsThresholds

type DatadogMonitorOptionsThresholds struct {
	// The monitor CRITICAL threshold.
	Critical *string `json:"critical,omitempty"`
	// The monitor CRITICAL recovery threshold.
	CriticalRecovery *string `json:"criticalRecovery,omitempty"`
	// The monitor OK threshold.
	OK *string `json:"ok,omitempty"`
	// The monitor UNKNOWN threshold.
	Unknown *string `json:"unknown,omitempty"`
	// The monitor WARNING threshold.
	Warning *string `json:"warning,omitempty"`
	// The monitor WARNING recovery threshold.
	WarningRecovery *string `json:"warningRecovery,omitempty"`
}

DatadogMonitorOptionsThresholds is a struct of the different monitor threshold values

func (*DatadogMonitorOptionsThresholds) DeepCopy

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

func (*DatadogMonitorOptionsThresholds) DeepCopyInto

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

type DatadogMonitorSpec

type DatadogMonitorSpec struct {
	// Name is the monitor name
	Name string `json:"name,omitempty"`
	// Message is a message to include with notifications for this monitor
	Message string `json:"message,omitempty"`
	// Priority is an integer from 1 (high) to 5 (low) indicating alert severity
	Priority int64 `json:"priority,omitempty"`
	// Query is the Datadog monitor query
	Query string `json:"query,omitempty"`
	// Tags is the monitor tags associated with your monitor
	Tags []string `json:"tags,omitempty"`
	// Type is the monitor type
	Type DatadogMonitorType `json:"type,omitempty"`
	// Options are the optional parameters associated with your monitor
	Options DatadogMonitorOptions `json:"options,omitempty"`
}

DatadogMonitorSpec defines the desired state of DatadogMonitor

func (*DatadogMonitorSpec) DeepCopy

func (in *DatadogMonitorSpec) DeepCopy() *DatadogMonitorSpec

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

func (*DatadogMonitorSpec) DeepCopyInto

func (in *DatadogMonitorSpec) DeepCopyInto(out *DatadogMonitorSpec)

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

type DatadogMonitorState

type DatadogMonitorState string

DatadogMonitorState represents the overall DatadogMonitor state

const (
	// DatadogMonitorStateOK means the DatadogMonitor is OK
	DatadogMonitorStateOK DatadogMonitorState = "OK"
	// DatadogMonitorStateAlert means the DatadogMonitor triggered an alert
	DatadogMonitorStateAlert DatadogMonitorState = "Alert"
	// DatadogMonitorStateWarn means the DatadogMonitor triggered a warning
	DatadogMonitorStateWarn DatadogMonitorState = "Warn"
	// DatadogMonitorStateNoData means the DatadogMonitor triggered a no data alert
	DatadogMonitorStateNoData DatadogMonitorState = "No Data"
	// DatadogMonitorStateSkipped means the DatadogMonitor is skipped
	DatadogMonitorStateSkipped DatadogMonitorState = "Skipped"
	// DatadogMonitorStateIgnored means the DatadogMonitor is ignored
	DatadogMonitorStateIgnored DatadogMonitorState = "Ignored"
	// DatadogMonitorStateUnknown means the DatadogMonitor is in an unknown state
	DatadogMonitorStateUnknown DatadogMonitorState = "Unknown"
)

type DatadogMonitorStatus

type DatadogMonitorStatus struct {
	// Conditions Represents the latest available observations of a DatadogMonitor's current state.
	// +listType=map
	// +listMapKey=type
	Conditions []DatadogMonitorCondition `json:"conditions,omitempty"`

	// ID is the monitor ID generated in Datadog
	ID int `json:"id,omitempty"`
	// Creator is the identify of the monitor creator
	Creator string `json:"creator,omitempty"`
	// Created is the time the monitor was created
	Created *metav1.Time `json:"created,omitempty"`
	// MonitorState is the overall state of monitor
	MonitorState DatadogMonitorState `json:"monitorState,omitempty"`
	// MonitorStateLastUpdateTime is the last time the monitor state updated
	MonitorStateLastUpdateTime *metav1.Time `json:"monitorStateLastUpdateTime,omitempty"`
	// MonitorStateLastTransitionTime is the last time the monitor state changed
	MonitorStateLastTransitionTime *metav1.Time `json:"monitorStateLastTransitionTime,omitempty"`
	// SyncStatus shows the health of syncing the monitor state to Datadog
	SyncStatus SyncStatusMessage `json:"syncStatus,omitempty"`
	// TriggeredState only includes details for monitor groups that are triggering
	TriggeredState []DatadogMonitorTriggeredState `json:"triggeredState,omitempty"`
	// DowntimeStatus defines whether the monitor is downtimed
	DowntimeStatus DatadogMonitorDowntimeStatus `json:"downtimeStatus,omitempty"`

	// Primary defines whether the monitor is managed by the Kubernetes custom
	// resource (true) or outside Kubernetes (false)
	Primary bool `json:"primary,omitempty"`

	// CurrentHash tracks the hash of the current DatadogMonitorSpec to know
	// if the Spec has changed and needs an update
	CurrentHash string `json:"currentHash,omitempty"`
}

DatadogMonitorStatus defines the observed state of DatadogMonitor

func (*DatadogMonitorStatus) DeepCopy

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

func (*DatadogMonitorStatus) DeepCopyInto

func (in *DatadogMonitorStatus) DeepCopyInto(out *DatadogMonitorStatus)

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

type DatadogMonitorTriggeredState

type DatadogMonitorTriggeredState struct {
	// MonitorGroup is the name of the triggering group
	MonitorGroup       string              `json:"monitorGroup,omitempty"`
	State              DatadogMonitorState `json:"state,omitempty"`
	LastTransitionTime metav1.Time         `json:"lastTransitionTime,omitempty"`
}

DatadogMonitorTriggeredState represents the details of a triggering DatadogMonitor The DatadogMonitor is triggering if one of its groups is in Alert, Warn, or No Data

func (*DatadogMonitorTriggeredState) DeepCopy

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

func (*DatadogMonitorTriggeredState) DeepCopyInto

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

type DatadogMonitorType

type DatadogMonitorType string

DatadogMonitorType defines the type of monitor

const (
	// DatadogMonitorTypeMetric is the metric alert monitor type
	DatadogMonitorTypeMetric DatadogMonitorType = "metric alert"
	// DatadogMonitorTypeQuery is the query alert monitor type
	DatadogMonitorTypeQuery DatadogMonitorType = "query alert"
	// DatadogMonitorTypeService is the service check monitor type
	DatadogMonitorTypeService DatadogMonitorType = "service check"
	// DatadogMonitorTypeEvent is the event alert monitor type
	DatadogMonitorTypeEvent DatadogMonitorType = "event alert"
	// DatadogMonitorTypeLog is the log alert monitor type
	DatadogMonitorTypeLog DatadogMonitorType = "log alert"
	// DatadogMonitorTypeProcess is the process alert monitor type
	DatadogMonitorTypeProcess DatadogMonitorType = "process alert"
	// DatadogMonitorTypeRUM is the rum alert monitor type
	DatadogMonitorTypeRUM DatadogMonitorType = "rum alert"
	// DatadogMonitorTypeTraceAnalytics is the trace-analytics alert monitor type
	DatadogMonitorTypeTraceAnalytics DatadogMonitorType = "trace-analytics alert"
	// DatadogMonitorTypeSLO is the slo alert monitor type
	DatadogMonitorTypeSLO DatadogMonitorType = "slo alert"
	// DatadogMonitorTypeEventV2 is the event-v2 alert monitor type
	DatadogMonitorTypeEventV2 DatadogMonitorType = "event-v2 alert"
	// DatadogMonitorTypeAudit is the audit alert monitor type
	DatadogMonitorTypeAudit DatadogMonitorType = "audit alert"
	// DatadogMonitorTypeComposite is the composite alert monitor type
	DatadogMonitorTypeComposite DatadogMonitorType = "composite"
)

type DeploymentStatus

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  *metav1.Time `json:"lastUpdate,omitempty"`
	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 ClusterAgent deployment computed status.
	Status string `json:"status,omitempty"`
	// State corresponds to the ClusterAgent deployment state.
	State string `json:"state,omitempty"`

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

DeploymentStatus type representing the Cluster Agent Deployment status. +k8s:openapi-gen=true

func (*DeploymentStatus) DeepCopy

func (in *DeploymentStatus) DeepCopy() *DeploymentStatus

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

func (*DeploymentStatus) DeepCopyInto

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

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

type DogstatsdConfig

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

	// Configure the Dogstatsd Unix Domain Socket.
	// See also: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/
	// +optional
	UnixDomainSocket *DSDUnixDomainSocketSpec `json:"unixDomainSocket,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 *CustomConfigSpec `json:"mapperProfiles,omitempty"`
}

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

func DefaultConfigDogstatsd

func DefaultConfigDogstatsd(config *NodeAgentConfig) *DogstatsdConfig

DefaultConfigDogstatsd used to default Dogstatsd config in NodeAgentConfig

func (*DogstatsdConfig) DeepCopy

func (in *DogstatsdConfig) DeepCopy() *DogstatsdConfig

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

func (*DogstatsdConfig) DeepCopyInto

func (in *DogstatsdConfig) DeepCopyInto(out *DogstatsdConfig)

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

type ExternalMetricsConfig

type ExternalMetricsConfig struct {
	// Enable the metricsProvider to be able to scale based on metrics in Datadog.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Enable informer and controller of the watermark pod autoscaler.
	// NOTE: The WatermarkPodAutoscaler controller needs to be installed.
	// See also: https://github.com/DataDog/watermarkpodautoscaler.
	// +optional
	WpaController bool `json:"wpaController,omitempty"`

	// Enable usage of DatadogMetrics CRD (allow to scale on arbitrary queries).
	// +optional
	UseDatadogMetrics bool `json:"useDatadogMetrics,omitempty"`

	// If specified configures the metricsProvider external metrics service port.
	// +optional
	Port *int32 `json:"port,omitempty"`

	// Override the API endpoint for the external metrics server.
	// Defaults to .spec.agent.config.ddUrl or "https://app.datadoghq.com" if that's empty.
	// +optional
	Endpoint *string `json:"endpoint,omitempty"`

	// Datadog credentials used by external metrics server to query Datadog.
	// If not set, the external metrics server uses the global .spec.Credentials
	// +optional
	Credentials *DatadogCredentials `json:"credentials,omitempty"`
}

ExternalMetricsConfig contains the configuration of the external metrics provider in Cluster Agent. +k8s:openapi-gen=true

func DefaultExternalMetrics

func DefaultExternalMetrics(conf *ClusterAgentConfig) *ExternalMetricsConfig

DefaultExternalMetrics defaults the External Metrics Server's config in the Cluster Agent's config

func (*ExternalMetricsConfig) DeepCopy

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

func (*ExternalMetricsConfig) DeepCopyInto

func (in *ExternalMetricsConfig) DeepCopyInto(out *ExternalMetricsConfig)

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

type ImageConfig

type ImageConfig struct {
	// Define the image to use:
	// Use "gcr.io/datadoghq/agent" for Datadog Agent 7
	// Use "datadog/dogstatsd" for Standalone Datadog Agent DogStatsD
	// Use "gcr.io/datadoghq/cluster-agent" 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>
	Name string `json:"name,omitempty"`

	// Define the image version 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.
	// +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"`
}

ImageConfig Datadog Agent container image config. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgentImage

func DefaultDatadogAgentSpecAgentImage(agent *DatadogAgentSpecAgentSpec, name, tag string) *ImageConfig

DefaultDatadogAgentSpecAgentImage used to default a ImageConfig for the Agent, Cluster Agent and the Cluster Check Runner. Returns the defaulted ImageConfig.

func DefaultDatadogAgentSpecClusterChecksRunnerImage

func DefaultDatadogAgentSpecClusterChecksRunnerImage(clc *DatadogAgentSpecClusterChecksRunnerSpec, name, tag string) *ImageConfig

DefaultDatadogAgentSpecClusterChecksRunnerImage used to default a ImageConfig for the Agent, Cluster Agent and the Cluster Check Runner. Returns the defaulted ImageConfig.

func DefaultDatadogClusterAgentImage

func DefaultDatadogClusterAgentImage(dca *DatadogAgentSpecClusterAgentSpec, name, tag string) *ImageConfig

DefaultDatadogClusterAgentImage used to default a ImageConfig for the Agent, Cluster Agent and the Cluster Check Runner. Returns the defaulted ImageConfig.

func (*ImageConfig) DeepCopy

func (in *ImageConfig) DeepCopy() *ImageConfig

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

func (*ImageConfig) DeepCopyInto

func (in *ImageConfig) DeepCopyInto(out *ImageConfig)

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

type KubeStateMetricsCore

type KubeStateMetricsCore struct {
	// Enable this to start the Kubernetes State Metrics Core check.
	// Refer to https://docs.datadoghq.com/integrations/kubernetes_state_core
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// To override the configuration for the default Kubernetes State Metrics Core check.
	// Must point to a ConfigMap containing a valid cluster check configuration.
	Conf *CustomConfigSpec `json:"conf,omitempty"`

	// ClusterCheck configures the Kubernetes State Metrics Core check as a cluster check.
	// +optional
	ClusterCheck *bool `json:"clusterCheck,omitempty"`
}

KubeStateMetricsCore contains the required parameters to enable and override the configuration of the Kubernetes State Metrics Core check. +k8s:openapi-gen=true

func DefaultDatadogFeatureKubeStateMetricsCore

func DefaultDatadogFeatureKubeStateMetricsCore(ft *DatadogFeatures, withClusterChecksRunner bool) *KubeStateMetricsCore

DefaultDatadogFeatureKubeStateMetricsCore used to default the Kubernetes State Metrics core check Disabled by default with no overridden configuration.

func (*KubeStateMetricsCore) DeepCopy

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

func (*KubeStateMetricsCore) DeepCopyInto

func (in *KubeStateMetricsCore) DeepCopyInto(out *KubeStateMetricsCore)

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

type KubeletConfig

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

	// Toggle kubelet TLS verification (default to true)
	// +optional
	TLSVerify *bool `json:"tlsVerify,omitempty"`

	// Path (on host) where the Kubelet CA certificate is stored
	// +optional
	HostCAPath string `json:"hostCAPath,omitempty"`

	// Path (inside Agent containers) where the Kubelet CA certificate is stored
	// Default to /var/run/host-kubelet-ca.crt if hostCAPath else /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
	// +optional
	AgentCAPath string `json:"agentCAPath,omitempty"`
}

KubeletConfig contains the Kubelet configuration parameters +k8s:openapi-gen=true

func (*KubeletConfig) DeepCopy

func (in *KubeletConfig) DeepCopy() *KubeletConfig

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

func (*KubeletConfig) DeepCopyInto

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

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

type LocalService

type LocalService struct {
	// Name of the internal traffic service to target the agent running on the local node
	// +optional
	OverrideName string `json:"overrideName,omitempty"`

	// Force the creation of the internal traffic policy service to target the agent running on the local node.
	// By default, the internal traffic service is created only on Kubernetes 1.22+ where the feature became beta and enabled by default.
	// This option allows to force the creation of the internal traffic service on kubernetes 1.21 where the feature was alpha and required a feature gate to be explicitly enabled.
	ForceLocalServiceEnable *bool `json:"forceLocalServiceEnable,omitempty"`
}

LocalService provides 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 LogCollectionConfig

type LogCollectionConfig struct {
	// Enable this option to activate Datadog Agent log collection.
	// See also: https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/#log-collection-setup
	//
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// Enable this option to allow log collection for all containers.
	// See also: https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/#log-collection-setup
	//
	// +optional
	LogsConfigContainerCollectAll *bool `json:"logsConfigContainerCollectAll,omitempty"`

	// Collect logs 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 is true
	//
	// +optional
	ContainerCollectUsingFiles *bool `json:"containerCollectUsingFiles,omitempty"`

	// 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
	// Defaults to `/var/lib/docker/containers`
	//
	// +optional
	ContainerLogsPath *string `json:"containerLogsPath,omitempty"`

	// Allows log collection from pod log path.
	// Defaults to `/var/log/pods`.
	//
	// +optional
	PodLogsPath *string `json:"podLogsPath,omitempty"`

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

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

	// 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 is 100
	//
	// +optional
	OpenFilesLimit *int32 `json:"openFilesLimit,omitempty"`
}

LogCollectionConfig contains the Log Agent configuration. +k8s:openapi-gen=true

func DefaultDatadogFeatureLogCollection

func DefaultDatadogFeatureLogCollection(ft *DatadogFeatures) *LogCollectionConfig

DefaultDatadogFeatureLogCollection used to default an LogCollectionConfig return the defaulted LogCollectionConfig

func (*LogCollectionConfig) DeepCopy

func (in *LogCollectionConfig) DeepCopy() *LogCollectionConfig

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

func (*LogCollectionConfig) DeepCopyInto

func (in *LogCollectionConfig) DeepCopyInto(out *LogCollectionConfig)

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

type NetworkMonitoringConfig

type NetworkMonitoringConfig struct {
	Enabled *bool `json:"enabled,omitempty"`
}

NetworkMonitoringConfig allows configuration of network performance monitoring.

func DefaultDatadogFeatureNetworkMonitoring

func DefaultDatadogFeatureNetworkMonitoring(ft *DatadogFeatures) *NetworkMonitoringConfig

DefaultDatadogFeatureNetworkMonitoring used to default the NetworkMonitoring config

func (*NetworkMonitoringConfig) DeepCopy

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

func (*NetworkMonitoringConfig) DeepCopyInto

func (in *NetworkMonitoringConfig) DeepCopyInto(out *NetworkMonitoringConfig)

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"
)

type NetworkPolicySpec

type NetworkPolicySpec struct {
	// If true, create a NetworkPolicy for the current agent.
	// +optional
	Create *bool `json:"create,omitempty"`

	// Which network policy to use. Can be `kubernetes` or `cilium`.
	// +optional
	Flavor NetworkPolicyFlavor `json:"flavor,omitempty"`

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

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

func DefaultAgentNetworkPolicy

func DefaultAgentNetworkPolicy(agent *DatadogAgentSpecAgentSpec) *NetworkPolicySpec

DefaultAgentNetworkPolicy defaults the Network Policy for the Datadog Agent

func DefaultClusterAgentNetworkPolicy

func DefaultClusterAgentNetworkPolicy(dca *DatadogAgentSpecClusterAgentSpec) *NetworkPolicySpec

DefaultClusterAgentNetworkPolicy defaults the Network Policy for the Datadog Cluster Agent

func DefaultClusterCheckRunnerNetworkPolicy

func DefaultClusterCheckRunnerNetworkPolicy(clc *DatadogAgentSpecClusterChecksRunnerSpec) *NetworkPolicySpec

DefaultClusterCheckRunnerNetworkPolicy defaults the Network Policy for the Cluster Check Runner

func DefaultNetworkPolicy

func DefaultNetworkPolicy(policy *NetworkPolicySpec) *NetworkPolicySpec

DefaultNetworkPolicy is used to default NetworkPolicy. Returns the defaulted NetworkPolicySpec

func (*NetworkPolicySpec) DeepCopy

func (in *NetworkPolicySpec) DeepCopy() *NetworkPolicySpec

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

func (*NetworkPolicySpec) DeepCopyInto

func (in *NetworkPolicySpec) DeepCopyInto(out *NetworkPolicySpec)

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

type NodeAgentConfig

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

	// The host of the Datadog intake server to send Agent data 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
	DDUrl *string `json:"ddUrl,omitempty"`

	// Set logging verbosity, valid log levels are:
	// trace, debug, info, warn, error, critical, and off
	LogLevel *string `json:"logLevel,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
	Confd *ConfigDirSpec `json:"confd,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
	Checksd *ConfigDirSpec `json:"checksd,omitempty"`

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

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

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

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

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

	// Enables this to start event collection from the Kubernetes API.
	// See also: https://docs.datadoghq.com/agent/kubernetes/event_collection/
	// +optional
	CollectEvents *bool `json:"collectEvents,omitempty"`

	// Enables leader election mechanism for event collection.
	// +optional
	LeaderElection *bool `json:"leaderElection,omitempty"`

	// The Datadog Agent supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Specify additional volumes in the Datadog Agent container.
	// +optional
	// +listType=map
	// +listMapKey=name
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// Datadog Agent resource requests and limits.
	// Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class.
	// See also: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

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

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

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

	// Configure the CRI Socket.
	CriSocket *CRISocketConfig `json:"criSocket,omitempty"`

	// Configure Dogstatsd.
	Dogstatsd *DogstatsdConfig `json:"dogstatsd,omitempty"`

	// If specified, the Agent pod's tolerations.
	// +optional
	// +listType=atomic
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Number of port to expose on the host.
	// If specified, this must be a valid port number, 0 < x < 65536.
	// If HostNetwork is specified, this must match ContainerPort.
	// Most containers do not need this.
	//
	// +optional
	HostPort *int32 `json:"hostPort,omitempty"`

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

NodeAgentConfig contains the configuration of the Node Agent. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgentConfig

func DefaultDatadogAgentSpecAgentConfig(agent *DatadogAgentSpecAgentSpec) *NodeAgentConfig

DefaultDatadogAgentSpecAgentConfig used to default a NodeAgentConfig return the defaulted NodeAgentConfig

func (*NodeAgentConfig) DeepCopy

func (in *NodeAgentConfig) DeepCopy() *NodeAgentConfig

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

func (*NodeAgentConfig) DeepCopyInto

func (in *NodeAgentConfig) DeepCopyInto(out *NodeAgentConfig)

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

type OrchestratorExplorerConfig

type OrchestratorExplorerConfig struct {
	// Enable this to activate live Kubernetes monitoring.
	// See also: https://docs.datadoghq.com/infrastructure/livecontainers/#kubernetes-resources
	//
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// To override the configuration for the default Orchestrator Explorer check.
	// Must point to a ConfigMap containing a valid cluster check configuration.
	Conf *CustomConfigSpec `json:"conf,omitempty"`

	// ClusterCheck configures the Orchestrator Explorer check as a cluster check.
	// +optional
	ClusterCheck *bool `json:"clusterCheck,omitempty"`

	// +optional
	// Option to disable scrubbing of sensitive container data (passwords, tokens, etc. ).
	Scrubbing *Scrubbing `json:"scrubbing,omitempty"`

	// +optional
	// Additional endpoints for shipping the collected data as json in the form of {"https://process.agent.datadoghq.com": ["apikey1", ...], ...}'.
	AdditionalEndpoints *string `json:"additionalEndpoints,omitempty"`

	// +optional
	// Set this for the Datadog endpoint for the orchestrator explorer
	DDUrl *string `json:"ddUrl,omitempty"`

	// +optional
	// +listType=set
	// Additional tags for the collected data in the form of `a b c`
	// Difference to DD_TAGS: this is a cluster agent option that is used to define custom cluster tags
	ExtraTags []string `json:"extraTags,omitempty"`
}

OrchestratorExplorerConfig contains the orchestrator explorer configuration. The orchestratorExplorer runs in the process-agent and DCA. +k8s:openapi-gen=true

func DefaultDatadogFeatureOrchestratorExplorer

func DefaultDatadogFeatureOrchestratorExplorer(ft *DatadogFeatures, withClusterChecksRunner bool) *OrchestratorExplorerConfig

DefaultDatadogFeatureOrchestratorExplorer used to default an OrchestratorExplorerConfig return the defaulted OrchestratorExplorerConfig

func (*OrchestratorExplorerConfig) DeepCopy

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

func (*OrchestratorExplorerConfig) DeepCopyInto

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

type ProcessSpec

type ProcessSpec struct {

	// Enable the Process Agent container.
	// See also: https://docs.datadoghq.com/infrastructure/process/?tab=kubernetes#installation
	//
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// false (default): Only collect containers if available.
	// true: collect process information as well.
	// Note: If enabled, /etc/passwd is automatically mounted to allow username resolution.
	ProcessCollectionEnabled *bool `json:"processCollectionEnabled,omitempty"`

	// The Datadog Agent supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Datadog Process Agent resource requests and limits.
	// Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class.
	// See also: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

ProcessSpec contains the Process Agent configuration. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgentProcess

func DefaultDatadogAgentSpecAgentProcess(agent *DatadogAgentSpecAgentSpec) *ProcessSpec

DefaultDatadogAgentSpecAgentProcess used to default an ProcessSpec return the defaulted ProcessSpec

func (*ProcessSpec) DeepCopy

func (in *ProcessSpec) DeepCopy() *ProcessSpec

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

func (*ProcessSpec) DeepCopyInto

func (in *ProcessSpec) DeepCopyInto(out *ProcessSpec)

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

type PrometheusScrapeConfig

type PrometheusScrapeConfig struct {
	// Enable autodiscovering pods and services exposing prometheus metrics.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// ServiceEndpoints enables generating dedicated checks for service endpoints.
	// +optional
	ServiceEndpoints *bool `json:"serviceEndpoints,omitempty"`
	// AdditionalConfigs allows adding advanced prometheus check configurations with custom discovery rules.
	// +optional
	AdditionalConfigs *string `json:"additionalConfigs,omitempty"`
}

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

func DefaultDatadogFeaturePrometheusScrape

func DefaultDatadogFeaturePrometheusScrape(ft *DatadogFeatures) *PrometheusScrapeConfig

DefaultDatadogFeaturePrometheusScrape used to default the Prometheus Scrape config

func (*PrometheusScrapeConfig) DeepCopy

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

func (*PrometheusScrapeConfig) DeepCopyInto

func (in *PrometheusScrapeConfig) DeepCopyInto(out *PrometheusScrapeConfig)

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

type RbacConfig

type RbacConfig struct {
	// Used to configure RBAC resources creation.
	Create *bool `json:"create,omitempty"`

	// Used to set up the service account name to use.
	// Ignored if the field Create is true.
	ServiceAccountName *string `json:"serviceAccountName,omitempty"`
}

RbacConfig contains RBAC configuration. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecRbacConfig

func DefaultDatadogAgentSpecRbacConfig(agent *DatadogAgentSpecAgentSpec) *RbacConfig

DefaultDatadogAgentSpecRbacConfig used to default a RbacConfig return the defaulted RbacConfig

func DefaultDatadogClusterAgentSpecRbacConfig

func DefaultDatadogClusterAgentSpecRbacConfig(dca *DatadogAgentSpecClusterAgentSpec) *RbacConfig

DefaultDatadogClusterAgentSpecRbacConfig used to default a RbacConfig of the Cluster Agent

func DefaultDatadogClusterCheckRunnerSpecRbacConfig

func DefaultDatadogClusterCheckRunnerSpecRbacConfig(clc *DatadogAgentSpecClusterChecksRunnerSpec) *RbacConfig

DefaultDatadogClusterCheckRunnerSpecRbacConfig used to default a RbacConfig of the Cluster Check Runner

func DefaultRbacConfig

func DefaultRbacConfig(rbac *RbacConfig) *RbacConfig

DefaultRbacConfig defaults the RBAC section of the DatadogAgent

func (*RbacConfig) DeepCopy

func (in *RbacConfig) DeepCopy() *RbacConfig

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

func (*RbacConfig) DeepCopyInto

func (in *RbacConfig) DeepCopyInto(out *RbacConfig)

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

type RuntimeSecuritySpec

type RuntimeSecuritySpec struct {
	// Enables runtime security features.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// ConfigDir containing security policies.
	// +optional
	PoliciesDir *ConfigDirSpec `json:"policiesDir,omitempty"`

	// Syscall monitor configuration.
	// +optional
	SyscallMonitor *SyscallMonitorSpec `json:"syscallMonitor,omitempty"`
}

RuntimeSecuritySpec contains configuration for runtime security features. +k8s:openapi-gen=true

func (*RuntimeSecuritySpec) DeepCopy

func (in *RuntimeSecuritySpec) DeepCopy() *RuntimeSecuritySpec

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

func (*RuntimeSecuritySpec) DeepCopyInto

func (in *RuntimeSecuritySpec) DeepCopyInto(out *RuntimeSecuritySpec)

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

type Scrubbing

type Scrubbing struct {
	// Deactivate this to stop the scrubbing of sensitive container data (passwords, tokens, etc. ).
	Containers *bool `json:"containers,omitempty"`
}

Scrubbing contains configuration to enable or disable scrubbing options

func (*Scrubbing) DeepCopy

func (in *Scrubbing) DeepCopy() *Scrubbing

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

func (*Scrubbing) DeepCopyInto

func (in *Scrubbing) DeepCopyInto(out *Scrubbing)

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

type Secret

type Secret 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"`
}

Secret contains a secret name and an included key. +k8s:openapi-gen=true

func (*Secret) DeepCopy

func (in *Secret) DeepCopy() *Secret

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

func (*Secret) DeepCopyInto

func (in *Secret) DeepCopyInto(out *Secret)

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

type SecuritySpec

type SecuritySpec struct {
	// Compliance configuration.
	// +optional
	Compliance ComplianceSpec `json:"compliance,omitempty"`

	// Runtime security configuration.
	// +optional
	Runtime RuntimeSecuritySpec `json:"runtime,omitempty"`

	// The Datadog Security Agent supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Datadog Security Agent resource requests and limits.
	// Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class.
	// See also: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

SecuritySpec contains the Security Agent configuration. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgentSecurity

func DefaultDatadogAgentSpecAgentSecurity(agent *DatadogAgentSpecAgentSpec) *SecuritySpec

DefaultDatadogAgentSpecAgentSecurity defaults the Security Agent in the DatadogAgentSpec

func (*SecuritySpec) DeepCopy

func (in *SecuritySpec) DeepCopy() *SecuritySpec

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

func (*SecuritySpec) DeepCopyInto

func (in *SecuritySpec) DeepCopyInto(out *SecuritySpec)

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

type SyncStatusMessage

type SyncStatusMessage string

SyncStatusMessage is the message reflecting the health of monitor state syncs to Datadog

const (
	// SyncStatusOK means syncing is OK
	SyncStatusOK SyncStatusMessage = "OK"
	// SyncStatusValidateError means there is a monitor validation error
	SyncStatusValidateError SyncStatusMessage = "error validating monitor"
	// SyncStatusUpdateError means there is a monitor update error
	SyncStatusUpdateError SyncStatusMessage = "error updating monitor"
	// SyncStatusGetError means there is an error getting the monitor
	SyncStatusGetError SyncStatusMessage = "error getting monitor"
)

type SyscallMonitorSpec

type SyscallMonitorSpec struct {
	// Enabled enables syscall monitor
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
}

SyscallMonitorSpec contains configuration for syscall monitor. +k8s:openapi-gen=true

func (*SyscallMonitorSpec) DeepCopy

func (in *SyscallMonitorSpec) DeepCopy() *SyscallMonitorSpec

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

func (*SyscallMonitorSpec) DeepCopyInto

func (in *SyscallMonitorSpec) DeepCopyInto(out *SyscallMonitorSpec)

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

type SystemProbeSpec

type SystemProbeSpec struct {
	// Enable this to activate live process monitoring.
	// Note: /etc/passwd is automatically mounted to allow username resolution.
	// See also: https://docs.datadoghq.com/infrastructure/process/?tab=kubernetes#installation
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

	// SecCompRootPath specify the seccomp profile root directory.
	// +optional
	SecCompRootPath string `json:"secCompRootPath,omitempty"`

	// SecCompCustomProfileConfigMap specify a pre-existing ConfigMap containing a custom SecComp profile.
	// This ConfigMap must contain a file named system-probe-seccomp.json.
	// +optional
	SecCompCustomProfileConfigMap string `json:"secCompCustomProfileConfigMap,omitempty"`

	// SecCompProfileName specify a seccomp profile.
	// +optional
	SecCompProfileName string `json:"secCompProfileName,omitempty"`

	// AppArmorProfileName specify a apparmor profile.
	// +optional
	AppArmorProfileName string `json:"appArmorProfileName,omitempty"`

	// ConntrackEnabled enable 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/
	ConntrackEnabled *bool `json:"conntrackEnabled,omitempty"`

	// BPFDebugEnabled logging for kernel debug.
	BPFDebugEnabled *bool `json:"bpfDebugEnabled,omitempty"`

	// DebugPort Specify the port to expose pprof and expvar for system-probe agent.
	DebugPort int32 `json:"debugPort,omitempty"`

	// EnableTCPQueueLength enables the TCP queue length eBPF-based check.
	EnableTCPQueueLength *bool `json:"enableTCPQueueLength,omitempty"`

	// EnableOOMKill enables the OOM kill eBPF-based check.
	EnableOOMKill *bool `json:"enableOOMKill,omitempty"`

	// CollectDNSStats enables DNS stat collection.
	CollectDNSStats *bool `json:"collectDNSStats,omitempty"`

	// Enable custom configuration for system-probe, corresponding to the system-probe.yaml config file.
	// This custom configuration has less priority than all settings above.
	// +optional
	CustomConfig *CustomConfigSpec `json:"customConfig,omitempty"`

	// The Datadog SystemProbe supports many environment variables.
	// See also: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Datadog SystemProbe resource requests and limits.
	// Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class.
	// See also: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

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

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

	// You can modify the security context used to run the containers by
	// modifying the label type.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
}

SystemProbeSpec contains the SystemProbe Agent configuration. +k8s:openapi-gen=true

func DefaultDatadogAgentSpecAgentSystemProbe

func DefaultDatadogAgentSpecAgentSystemProbe(agent *DatadogAgentSpecAgentSpec) *SystemProbeSpec

DefaultDatadogAgentSpecAgentSystemProbe defaults the System Probe This method can be re-run as part of the FeatureOverride

func (*SystemProbeSpec) DeepCopy

func (in *SystemProbeSpec) DeepCopy() *SystemProbeSpec

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

func (*SystemProbeSpec) DeepCopyInto

func (in *SystemProbeSpec) DeepCopyInto(out *SystemProbeSpec)

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