v1alpha1

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2023 License: Apache-2.0 Imports: 23 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 (
	// Datadog volume names and mount paths
	LogDatadogVolumeName   = "logdatadog"
	LogDatadogVolumePath   = "/var/log/datadog"
	TmpVolumeName          = "tmp"
	TmpVolumePath          = "/tmp"
	CertificatesVolumeName = "certificates"
	CertificatesVolumePath = "/etc/datadog-agent/certificates"

	ProcVolumeName                       = "procdir"
	ProcVolumePath                       = "/host/proc"
	ProcVolumeReadOnly                   = true
	PasswdVolumeName                     = "passwd"
	PasswdVolumePath                     = "/etc/passwd"
	GroupVolumeName                      = "group"
	GroupVolumePath                      = "/etc/group"
	CgroupsVolumeName                    = "cgroups"
	CgroupsVolumePath                    = "/host/sys/fs/cgroup"
	CgroupsVolumeReadOnly                = true
	SystemProbeSocketVolumeName          = "sysprobe-socket-dir"
	SystemProbeSocketVolumePath          = "/var/run/sysprobe"
	CriSocketVolumeReadOnly              = true
	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"
	SystemProbeConfigVolumeSubPath       = "system-probe.yaml"
	SystemProbeLibModulesVolumeName      = "modules"
	SystemProbeLibModulesVolumePath      = "/lib/modules"
	SystemProbeUsrSrcVolumeName          = "src"
	SystemProbeUsrSrcVolumePath          = "/usr/src"
	OrchestratorExplorerConfigVolumeName = "orchestrator-explorer-config"

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

Datadog env var names

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

	DefaultOrchestratorExplorerConf string = "orchestrator-explorer-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 CheckAPIKeySufficiency added in v1.0.0

func CheckAPIKeySufficiency(creds *DatadogCredentials, envVarName string) bool

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

func CheckAppKeySufficiency added in v1.0.0

func CheckAppKeySufficiency(creds *DatadogCredentials, envVarName string) bool

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

func ConvertConfigDirSpec added in v1.0.0

func ConvertConfigDirSpec(src *ConfigDirSpec) *v2alpha1.MultiCustomConfig

ConvertConfigDirSpec converts v1alpha1.ConfigDirSpec to v2alpha1.MultiCustomConfig

func ConvertConfigDirSpecToCustomConfig added in v1.0.0

func ConvertConfigDirSpecToCustomConfig(src *ConfigDirSpec) *commonv1.CustomConfig

ConvertConfigDirSpecToCustomConfig converts v1alpha1.ConfigDirSpec to v2alpha1.CustomConfig

func ConvertCustomConfig added in v1.0.0

func ConvertCustomConfig(config *CustomConfigSpec) *commonv1.CustomConfig

ConvertCustomConfig use to convert a CustomConfigSpec to a common.CustomConfig.

func ConvertTo added in v1.0.0

func ConvertTo(src *DatadogAgent, dst *v2alpha1.DatadogAgent) error

ConvertTo use to convert v1alpha1.DatadogAgent to v2alpha1.DatadogAgent

func DefaultDatadogAgentSpecAgentImage

func DefaultDatadogAgentSpecAgentImage(agent *DatadogAgentSpecAgentSpec, name, tag string) *commonv1.AgentImageConfig

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) *commonv1.AgentImageConfig

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) *commonv1.AgentImageConfig

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

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 GetAPIKeySecret added in v1.0.0

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

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

func GetAgentServiceAccount added in v1.0.0

func GetAgentServiceAccount(dda *DatadogAgent) string

GetAgentServiceAccount returns the agent serviceAccountName

func GetAppKeySecret added in v1.0.0

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

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

func GetClusterAgentServiceAccount added in v1.0.0

func GetClusterAgentServiceAccount(dda *DatadogAgent) string

GetClusterAgentServiceAccount return the cluster-agent serviceAccountName

func GetClusterChecksRunnerServiceAccount added in v1.0.0

func GetClusterChecksRunnerServiceAccount(dda *DatadogAgent) string

GetClusterChecksRunnerServiceAccount return the cluster-checks-runner service account name

func GetConfName added in v1.0.0

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

GetConfName get the name of the Configmap for a CustomConfigSpec

func GetDefaultCredentialsSecretName added in v1.0.0

func GetDefaultCredentialsSecretName(dda *DatadogAgent) string

GetDefaultCredentialsSecretName returns the default name for credentials secret

func GetKeysFromCredentials added in v1.0.0

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

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

func GetLocalAgentServiceName added in v1.0.0

func GetLocalAgentServiceName(dda *DatadogAgent) string

GetLocalAgentServiceName returns the name used for the local agent service

func IsCCREnabled added in v1.0.0

func IsCCREnabled(dda *DatadogAgent) bool

IsCCREnabled returns whether the DDA should use Cluster Checks Runners

func IsClusterChecksEnabled added in v1.0.0

func IsClusterChecksEnabled(dda *DatadogAgent) bool

IsClusterChecksEnabled returns whether the DDA should use cluster checks

func IsHostNetworkEnabled added in v1.0.0

func IsHostNetworkEnabled(dda *DatadogAgent) bool

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

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 IsValidDatadogSLO added in v1.3.0

func IsValidDatadogSLO(spec *DatadogSLOSpec) error

IsValidDatadogSLO use to check if a DatadogSLOSpec 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 maximum 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 maximum 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 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: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) ConvertFrom added in v1.0.0

func (dst *DatadogAgent) ConvertFrom(src conversion.Hub) error

ConvertFrom converts a v2alpha1 (Hub) to v1alpha1 (local) Not supported. Only match metadata to not block the v1alpha1 to v2alpha1 migration.

func (*DatadogAgent) ConvertTo added in v1.0.0

func (src *DatadogAgent) ConvertTo(dst conversion.Hub) error

ConvertTo converts a v1alpha1 to v2alpha1 (Hub)

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 *commonv1.AgentImageConfig `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"`

	// OTLP ingest configuration
	// +optional
	OTLP *OTLPSpec `json:"otlp,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 *commonv1.AgentImageConfig `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 *commonv1.AgentImageConfig `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 *commonv1.DaemonSetStatus `json:"agent,omitempty"`

	// The actual state of the Cluster Agent as a deployment.
	// +optional
	ClusterAgent *commonv1.DeploymentStatus `json:"clusterAgent,omitempty"`

	// The actual state of the Cluster Checks Runner as a deployment.
	// +optional
	ClusterChecksRunner *commonv1.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 *commonv1.SecretConfig `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 *commonv1.SecretConfig `json:"appSecret,omitempty"`
}

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

func (*DatadogCredentials) DeepCopy

func (in *DatadogCredentials) DeepCopy() *DatadogCredentials

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

func (*DatadogCredentials) DeepCopyInto

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

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

type DatadogFeatures

type DatadogFeatures struct {
	// 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"`
	// TimeWindow provides the time window for the metric query, defaults to MaxAge.
	// +optional
	TimeWindow metav1.Duration `json:"timeWindow,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 state transition",type="string",JSONPath=".status.monitorStateLastTransitionTime" +kubebuilder:printcolumn:name="last state 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 DatadogMonitorControllerOptions added in v1.1.0

type DatadogMonitorControllerOptions struct {
	// DisableRequiredTags disables the automatic addition of required tags to monitors.
	DisableRequiredTags *bool `json:"disableRequiredTags,omitempty"`
}

DatadogMonitorControllerOptions defines options in the DatadogMonitor controller +k8s:openapi-gen=true

func (*DatadogMonitorControllerOptions) DeepCopy added in v1.1.0

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

func (*DatadogMonitorControllerOptions) DeepCopyInto added in v1.1.0

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

type DatadogMonitorDowntimeStatus

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

DatadogMonitorDowntimeStatus represents the downtime status of a DatadogMonitor +k8s:openapi-gen=true

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 Boolean indicating whether to send a log sample when the log monitor triggers.
	EnableLogsSample *bool `json:"enableLogsSample,omitempty"`
	// 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.
	NewGroupDelay *int64 `json:"newGroupDelay,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 +k8s:openapi-gen=true

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 +k8s:openapi-gen=true

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 +k8s:openapi-gen=true

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"`
	// RestrictedRoles is a list of unique role identifiers to define which roles are allowed to edit the monitor.
	// `restricted_roles` is the successor of `locked`. For more information about `locked` and `restricted_roles`,
	// see the [monitor options docs](https://docs.datadoghq.com/monitors/guide/monitor_api_options/#permissions-options).
	// +listType=set
	RestrictedRoles []string `json:"restrictedRoles,omitempty"`
	// Tags is the monitor tags associated with your monitor
	// +listType=set
	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"`

	// ControllerOptions are the optional parameters in the DatadogMonitor controller
	ControllerOptions DatadogMonitorControllerOptions `json:"controllerOptions,omitempty"`
}

DatadogMonitorSpec defines the desired state of DatadogMonitor +k8s:openapi-gen=true

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"`
	// MonitorLastForceSyncTime is the last time the API monitor was last force synced with the DatadogMonitor resource
	MonitorLastForceSyncTime *metav1.Time `json:"monitorLastForceSyncTime,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"`
	// MonitorStateSyncStatus shows the health of syncing the monitor state to Datadog
	MonitorStateSyncStatus MonitorStateSyncStatusMessage `json:"syncStatus,omitempty"`
	// TriggeredState only includes details for monitor groups that are triggering
	// +listType=map
	// +listMapKey=monitorGroup
	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 +k8s:openapi-gen=true

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"`
	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 +k8s:openapi-gen=true

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 DatadogSLO added in v1.3.0

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

	Spec   DatadogSLOSpec   `json:"spec,omitempty"`
	Status DatadogSLOStatus `json:"status,omitempty"`
}

DatadogSLO allows a user to define and manage datadog SLOs from Kubernetes cluster. +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder:resource:path=datadogslos,scope=Namespaced,shortName=ddslo +kubebuilder:printcolumn:name="id",type="string",JSONPath=".status.id" +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 (*DatadogSLO) DeepCopy added in v1.3.0

func (in *DatadogSLO) DeepCopy() *DatadogSLO

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

func (*DatadogSLO) DeepCopyInto added in v1.3.0

func (in *DatadogSLO) DeepCopyInto(out *DatadogSLO)

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

func (*DatadogSLO) DeepCopyObject added in v1.3.0

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

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

type DatadogSLOControllerOptions added in v1.3.0

type DatadogSLOControllerOptions struct {
	// DisableRequiredTags disables the automatic addition of required tags to SLOs.
	DisableRequiredTags *bool `json:"disableRequiredTags,omitempty"`
}

DatadogSLOControllerOptions defines options in the DatadogSLO controller. +k8s:openapi-gen=true

func (*DatadogSLOControllerOptions) DeepCopy added in v1.3.0

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

func (*DatadogSLOControllerOptions) DeepCopyInto added in v1.3.0

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

type DatadogSLOList added in v1.3.0

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

DatadogSLOList contains a list of DatadogSLOs. +kubebuilder:object:root=true

func (*DatadogSLOList) DeepCopy added in v1.3.0

func (in *DatadogSLOList) DeepCopy() *DatadogSLOList

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

func (*DatadogSLOList) DeepCopyInto added in v1.3.0

func (in *DatadogSLOList) DeepCopyInto(out *DatadogSLOList)

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

func (*DatadogSLOList) DeepCopyObject added in v1.3.0

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

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

type DatadogSLOQuery added in v1.3.0

type DatadogSLOQuery struct {
	// Numerator is a Datadog metric query for good events.
	Numerator string `json:"numerator"`
	// Denominator is a Datadog metric query for total (valid) events.
	Denominator string `json:"denominator"`
}

+k8s:openapi-gen=true

func (*DatadogSLOQuery) DeepCopy added in v1.3.0

func (in *DatadogSLOQuery) DeepCopy() *DatadogSLOQuery

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

func (*DatadogSLOQuery) DeepCopyInto added in v1.3.0

func (in *DatadogSLOQuery) DeepCopyInto(out *DatadogSLOQuery)

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

type DatadogSLOSpec added in v1.3.0

type DatadogSLOSpec struct {
	// Name is the name of the service level objective.
	Name string `json:"name"`

	// Description is a user-defined description of the service level objective.
	// Always included in service level objective responses (but may be null). Optional in create/update requests.
	Description *string `json:"description,omitempty"`

	// Groups is a list of (up to 100) monitor groups that narrow the scope of a monitor service level objective.
	// Included in service level objective responses if it is not empty.
	// Optional in create/update requests for monitor service level objectives, but may only be used when the length of the monitor_ids field is one.
	// +listType=set
	Groups []string `json:"groups,omitempty"`

	// MonitorIDs is a list of monitor IDs that defines the scope of a monitor service level objective. Required if type is monitor.
	// +listType=set
	MonitorIDs []int64 `json:"monitorIDs,omitempty"`

	// Tags is a list of tags to associate with your service level objective.
	// This can help you categorize and filter service level objectives in the service level objectives page of the UI.
	// Note: it's not currently possible to filter by these tags when querying via the API.
	// +listType=set
	Tags []string `json:"tags,omitempty"`

	// Query is the query for a metric-based SLO. Required if type is metric.
	// Note that only the `sum by` aggregator is allowed, which sums all request counts. `Average`, `max`, nor `min` request aggregators are not supported.
	Query *DatadogSLOQuery `json:"query,omitempty"`

	// Type is the type of the service level objective.
	Type DatadogSLOType `json:"type"`

	// The SLO time window options.
	Timeframe DatadogSLOTimeFrame `json:"timeframe"`

	// TargetThreshold is the target threshold such that when the service level indicator is above this threshold over the given timeframe, the objective is being met.
	TargetThreshold resource.Quantity `json:"targetThreshold"`

	// WarningThreshold is a optional warning threshold such that when the service level indicator is below this value for the given threshold, but above the target threshold, the objective appears in a "warning" state. This value must be greater than the target threshold.
	WarningThreshold *resource.Quantity `json:"warningThreshold,omitempty"`

	// ControllerOptions are the optional parameters in the DatadogSLO controller
	ControllerOptions *DatadogSLOControllerOptions `json:"controllerOptions,omitempty"`
}

+k8s:openapi-gen=true

func (*DatadogSLOSpec) DeepCopy added in v1.3.0

func (in *DatadogSLOSpec) DeepCopy() *DatadogSLOSpec

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

func (*DatadogSLOSpec) DeepCopyInto added in v1.3.0

func (in *DatadogSLOSpec) DeepCopyInto(out *DatadogSLOSpec)

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

type DatadogSLOStatus added in v1.3.0

type DatadogSLOStatus struct {
	// Conditions represents the latest available observations of the state of a DatadogSLO.
	// +listType=map
	// +listMapKey=type
	Conditions []metav1.Condition `json:"conditions,omitempty"`

	// ID is the SLO ID generated in Datadog.
	ID string `json:"id,omitempty"`

	// Creator is the identity of the SLO creator.
	Creator string `json:"creator,omitempty"`

	// Created is the time the SLO was created.
	Created *metav1.Time `json:"created,omitempty"`

	// SyncStatus shows the health of syncing the SLO state to Datadog.
	SyncStatus DatadogSLOSyncStatus `json:"syncStatus,omitempty"`

	// LastForceSyncTime is the last time the API SLO was last force synced with the DatadogSLO resource.
	LastForceSyncTime *metav1.Time `json:"lastForceSyncTime,omitempty"`

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

DatadogSLOStatus defines the observed state of a DatadogSLO. +k8s:openapi-gen=true

func (*DatadogSLOStatus) DeepCopy added in v1.3.0

func (in *DatadogSLOStatus) DeepCopy() *DatadogSLOStatus

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

func (*DatadogSLOStatus) DeepCopyInto added in v1.3.0

func (in *DatadogSLOStatus) DeepCopyInto(out *DatadogSLOStatus)

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

type DatadogSLOSyncStatus added in v1.3.0

type DatadogSLOSyncStatus string

DatadogSLOSyncStatus is the message reflecting the health of SLO state syncs to Datadog.

const (
	// DatadogSLOSyncStatusOK means syncing is OK.
	DatadogSLOSyncStatusOK DatadogSLOSyncStatus = "OK"
	// DatadogSLOSyncStatusValidateError means there is a SLO validation error.
	DatadogSLOSyncStatusValidateError DatadogSLOSyncStatus = "error validating SLO"
	// DatadogSLOSyncStatusUpdateError means there is a SLO update error.
	DatadogSLOSyncStatusUpdateError DatadogSLOSyncStatus = "error updating SLO"
	// DatadogSLOSyncStatusCreateError means there is an error getting the SLO.
	DatadogSLOSyncStatusCreateError DatadogSLOSyncStatus = "error creating SLO"
)

type DatadogSLOTimeFrame added in v1.3.0

type DatadogSLOTimeFrame string
const (
	DatadogSLOTimeFrame7d  DatadogSLOTimeFrame = "7d"
	DatadogSLOTimeFrame30d DatadogSLOTimeFrame = "30d"
	DatadogSLOTimeFrame90d DatadogSLOTimeFrame = "90d"
)

type DatadogSLOType added in v1.3.0

type DatadogSLOType string
const (
	DatadogSLOTypeMetric  DatadogSLOType = "metric"
	DatadogSLOTypeMonitor DatadogSLOType = "monitor"
)

func (DatadogSLOType) IsValid added in v1.3.0

func (t DatadogSLOType) IsValid() bool

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 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 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 MonitorStateSyncStatusMessage added in v1.1.0

type MonitorStateSyncStatusMessage string

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

const (
	// MonitorStateSyncStatusOK means syncing is OK
	MonitorStateSyncStatusOK MonitorStateSyncStatusMessage = "OK"
	// MonitorStateSyncStatusValidateError means there is a monitor validation error
	MonitorStateSyncStatusValidateError MonitorStateSyncStatusMessage = "error validating monitor"
	// MonitorStateSyncStatusUpdateError means there is a monitor update error
	MonitorStateSyncStatusUpdateError MonitorStateSyncStatusMessage = "error updating monitor"
	// SyncStatusGetError means there is an error getting the monitor
	MonitorStateSyncStatusGetError MonitorStateSyncStatusMessage = "error getting monitor"
)

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

func IsAgentNetworkPolicyEnabled added in v1.0.0

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

IsAgentNetworkPolicyEnabled returns whether a network policy should be created for the node agent and which flavor to use

func IsClusterAgentNetworkPolicyEnabled added in v1.0.0

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

IsClusterAgentNetworkPolicyEnabled returns whether a network policy should be created for the cluster agent and which flavor to use

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 DefaultClusterChecksRunnerNetworkPolicy added in v1.0.0

func DefaultClusterChecksRunnerNetworkPolicy(clc *DatadogAgentSpecClusterChecksRunnerSpec) *NetworkPolicySpec

DefaultClusterChecksRunnerNetworkPolicy 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 *commonv1.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 OTLPGRPCSpec added in v1.0.0

type OTLPGRPCSpec struct {
	// Enable the OTLP/gRPC endpoint.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

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

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

func (*OTLPGRPCSpec) DeepCopy added in v1.0.0

func (in *OTLPGRPCSpec) DeepCopy() *OTLPGRPCSpec

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

func (*OTLPGRPCSpec) DeepCopyInto added in v1.0.0

func (in *OTLPGRPCSpec) DeepCopyInto(out *OTLPGRPCSpec)

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

type OTLPHTTPSpec added in v1.0.0

type OTLPHTTPSpec struct {
	// Enable the OTLP/HTTP endpoint.
	// +optional
	Enabled *bool `json:"enabled,omitempty"`

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

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

func (*OTLPHTTPSpec) DeepCopy added in v1.0.0

func (in *OTLPHTTPSpec) DeepCopy() *OTLPHTTPSpec

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

func (*OTLPHTTPSpec) DeepCopyInto added in v1.0.0

func (in *OTLPHTTPSpec) DeepCopyInto(out *OTLPHTTPSpec)

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

type OTLPProtocolsSpec added in v1.0.0

type OTLPProtocolsSpec struct {
	// GRPC contains configuration for the OTLP ingest OTLP/gRPC receiver.
	// +optional
	GRPC *OTLPGRPCSpec `json:"grpc,omitempty"`
	// HTTP contains configuration for the OTLP ingest OTLP/HTTP receiver.
	// +optional
	HTTP *OTLPHTTPSpec `json:"http,omitempty"`
}

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

func (*OTLPProtocolsSpec) DeepCopy added in v1.0.0

func (in *OTLPProtocolsSpec) DeepCopy() *OTLPProtocolsSpec

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

func (*OTLPProtocolsSpec) DeepCopyInto added in v1.0.0

func (in *OTLPProtocolsSpec) DeepCopyInto(out *OTLPProtocolsSpec)

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

type OTLPReceiverSpec added in v1.0.0

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

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

func (*OTLPReceiverSpec) DeepCopy added in v1.0.0

func (in *OTLPReceiverSpec) DeepCopy() *OTLPReceiverSpec

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

func (*OTLPReceiverSpec) DeepCopyInto added in v1.0.0

func (in *OTLPReceiverSpec) DeepCopyInto(out *OTLPReceiverSpec)

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

type OTLPSpec added in v1.0.0

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

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

func DefaultDatadogAgentSpecAgentOTLP added in v1.0.0

func DefaultDatadogAgentSpecAgentOTLP(agent *DatadogAgentSpecAgentSpec) *OTLPSpec

DefaultDatadogAgentSpecAgentOTLP defaults the OTLP Ingest in the DatadogAgentSpec

func (*OTLPSpec) DeepCopy added in v1.0.0

func (in *OTLPSpec) DeepCopy() *OTLPSpec

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

func (*OTLPSpec) DeepCopyInto added in v1.0.0

func (in *OTLPSpec) DeepCopyInto(out *OTLPSpec)

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 DefaultDatadogClusterChecksRunnerSpecRbacConfig added in v1.0.0

func DefaultDatadogClusterChecksRunnerSpecRbacConfig(clc *DatadogAgentSpecClusterChecksRunnerSpec) *RbacConfig

DefaultDatadogClusterChecksRunnerSpecRbacConfig 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 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 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