v1alpha1

package
v0.4.0-rc.5 Latest Latest
Warning

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

Go to latest
Published: Nov 9, 2020 License: Apache-2.0 Imports: 13 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 +k8s:deepcopy-gen=package,register +groupName=datadoghq.com

Index

Constants

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

	// DefaultAgentResourceSuffix use as suffix for agent resource naming
	DefaultAgentResourceSuffix = "agent"
	// DefaultClusterAgentResourceSuffix use as suffix for cluster-agent resource naming
	DefaultClusterAgentResourceSuffix = "cluster-agent"
	// DefaultClusterChecksRunnerResourceSuffix use as suffix for cluster-checks-runner resource naming
	DefaultClusterChecksRunnerResourceSuffix = "cluster-checks-runner"
	// DefaultMetricsServerResourceSuffix use as suffix for cluster-agent metrics-server resource naming
	DefaultMetricsServerResourceSuffix = "cluster-agent-metrics-server"
	// DefaultAPPKeyKey default app-key key (use in secret for instance).
	DefaultAPPKeyKey = "app_key"
	// DefaultAPIKeyKey default api-key key (use in secret for instance).
	DefaultAPIKeyKey = "api_key"
	// DefaultTokenKey default token key (use in secret for instance).
	DefaultTokenKey = "token"
	// DefaultClusterAgentServicePort default cluster-agent service port
	DefaultClusterAgentServicePort = 5005
	// DefaultMetricsServerServicePort default metrics-server port
	DefaultMetricsServerServicePort = 443
	// DefaultMetricsServerTargetPort default metrics-server pod port
	DefaultMetricsServerTargetPort = int(defaultMetricsProviderPort)
	// DefaultAdmissionControllerServicePort default admission controller service port
	DefaultAdmissionControllerServicePort = 443
	// DefaultAdmissionControllerTargetPort default admission controller pod port
	DefaultAdmissionControllerTargetPort = 8000
	// DefaultDogstatsdPort default dogstatsd port
	DefaultDogstatsdPort = 8125
)
View Source
const (
	DatadogHost                                  = "DATADOG_HOST"
	DDAPIKey                                     = "DD_API_KEY"
	DDClusterName                                = "DD_CLUSTER_NAME"
	DDSite                                       = "DD_SITE"
	DDddURL                                      = "DD_DD_URL"
	DDHealthPort                                 = "DD_HEALTH_PORT"
	DDLogLevel                                   = "DD_LOG_LEVEL"
	DDPodLabelsAsTags                            = "DD_KUBERNETES_POD_LABELS_AS_TAGS"
	DDPodAnnotationsAsTags                       = "DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGS"
	DDTags                                       = "DD_TAGS"
	DDCollectKubeEvents                          = "DD_COLLECT_KUBERNETES_EVENTS"
	DDLeaderElection                             = "DD_LEADER_ELECTION"
	DDLogsEnabled                                = "DD_LOGS_ENABLED"
	DDLogsConfigContainerCollectAll              = "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL"
	DDLogsContainerCollectUsingFiles             = "DD_LOGS_CONFIG_K8S_CONTAINER_USE_FILE"
	DDLogsConfigOpenFilesLimit                   = "DD_LOGS_CONFIG_OPEN_FILES_LIMIT"
	DDDogstatsdOriginDetection                   = "DD_DOGSTATSD_ORIGIN_DETECTION"
	DDDogstatsdPort                              = "DD_DOGSTATSD_PORT"
	DDClusterAgentEnabled                        = "DD_CLUSTER_AGENT_ENABLED"
	DDClusterAgentKubeServiceName                = "DD_CLUSTER_AGENT_KUBERNETES_SERVICE_NAME"
	DDClusterAgentAuthToken                      = "DD_CLUSTER_AGENT_AUTH_TOKEN"
	DDMetricsProviderEnabled                     = "DD_EXTERNAL_METRICS_PROVIDER_ENABLED"
	DDMetricsProviderPort                        = "DD_EXTERNAL_METRICS_PROVIDER_PORT"
	DDMetricsProviderUseDatadogMetric            = "DD_EXTERNAL_METRICS_PROVIDER_USE_DATADOGMETRIC_CRD"
	DDMetricsProviderWPAController               = "DD_EXTERNAL_METRICS_PROVIDER_WPA_CONTROLLER"
	DDAppKey                                     = "DD_APP_KEY"
	DDClusterChecksEnabled                       = "DD_CLUSTER_CHECKS_ENABLED"
	DDClcRunnerEnabled                           = "DD_CLC_RUNNER_ENABLED"
	DDClcRunnerHost                              = "DD_CLC_RUNNER_HOST"
	DDExtraConfigProviders                       = "DD_EXTRA_CONFIG_PROVIDERS"
	DDExtraListeners                             = "DD_EXTRA_LISTENERS"
	DDHostname                                   = "DD_HOSTNAME"
	DDAPMEnabled                                 = "DD_APM_ENABLED"
	DDProcessAgentEnabled                        = "DD_PROCESS_AGENT_ENABLED"
	DDSystemProbeAgentEnabled                    = "DD_SYSTEM_PROBE_ENABLED"
	DDEnableMetadataCollection                   = "DD_ENABLE_METADATA_COLLECTION"
	DDKubeletHost                                = "DD_KUBERNETES_KUBELET_HOST"
	DDCriSocketPath                              = "DD_CRI_SOCKET_PATH"
	DockerHost                                   = "DOCKER_HOST"
	DDAdmissionControllerEnabled                 = "DD_ADMISSION_CONTROLLER_ENABLED"
	DDAdmissionControllerMutateUnlabelled        = "DD_ADMISSION_CONTROLLER_MUTATE_UNLABELLED"
	DDAdmissionControllerInjectConfig            = "DD_ADMISSION_CONTROLLER_INJECT_CONFIG_ENABLED"
	DDAdmissionControllerInjectTags              = "DD_ADMISSION_CONTROLLER_INJECT_TAGS_ENABLED"
	DDAdmissionControllerServiceName             = "DD_ADMISSION_CONTROLLER_SERVICE_NAME"
	DDComplianceConfigEnabled                    = "DD_COMPLIANCE_CONFIG_ENABLED"
	DDComplianceConfigCheckInterval              = "DD_COMPLIANCE_CONFIG_CHECK_INTERVAL"
	DDComplianceConfigDir                        = "DD_COMPLIANCE_CONFIG_DIR"
	DDRuntimeSecurityConfigEnabled               = "DD_RUNTIME_SECURITY_CONFIG_ENABLED"
	DDRuntimeSecurityConfigPoliciesDir           = "DD_RUNTIME_SECURITY_CONFIG_POLICIES_DIR"
	DDRuntimeSecurityConfigSocket                = "DD_RUNTIME_SECURITY_CONFIG_SOCKET"
	DDRuntimeSecurityConfigSyscallMonitorEnabled = "DD_RUNTIME_SECURITY_CONFIG_SYSCALL_MONITOR_ENABLED"

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

	InstallInfoVolumeName              = "installinfo"
	InstallInfoVolumeSubPath           = "install_info"
	InstallInfoVolumePath              = "/etc/datadog-agent/install_info"
	InstallInfoVolumeReadOnly          = true
	ConfdVolumeName                    = "confd"
	ConfdVolumePath                    = "/conf.d"
	ChecksdVolumeName                  = "checksd"
	ChecksdVolumePath                  = "/checks.d"
	ConfigVolumeName                   = "config"
	ConfigVolumePath                   = "/etc/datadog-agent"
	ProcVolumeName                     = "procdir"
	ProcVolumePath                     = "/host/proc"
	ProcVolumeReadOnly                 = true
	PasswdVolumeName                   = "passwd"
	PasswdVolumePath                   = "/etc/passwd"
	GroupVolumeName                    = "group"
	GroupVolumePath                    = "/etc/group"
	HostRootVolumeName                 = "hostroot"
	HostRootVolumePath                 = "/host/root"
	CgroupsVolumeName                  = "cgroups"
	CgroupsVolumePath                  = "/host/sys/fs/cgroup"
	CgroupsVolumeReadOnly              = true
	SystemProbeSocketVolumeName        = "sysprobe-socket-dir"
	SystemProbeSocketVolumePath        = "/opt/datadog-agent/run"
	CriSocketVolumeName                = "runtimesocketdir"
	CriSocketVolumeReadOnly            = true
	DogstatsdSockerVolumeName          = "dsdsocket"
	DogstatsdSockerVolumePath          = "/var/run/datadog"
	PointerVolumeName                  = "pointerdir"
	PointerVolumePath                  = "/opt/datadog-agent/run"
	LogPodVolumeName                   = "logpodpath"
	LogPodVolumePath                   = "/var/log/pods"
	LogPodVolumeReadOnly               = true
	LogContainerVolumeName             = "logcontainerpath"
	LogContainerVolumeReadOnly         = true
	SystemProbeDebugfsVolumeName       = "debugfs"
	SystemProbeDebugfsVolumePath       = "/sys/kernel/debug"
	SystemProbeConfigVolumeName        = "system-probe-config"
	SystemProbeConfigVolumePath        = "/etc/datadog-agent/system-probe.yaml"
	SystemProbeConfigVolumeSubPath     = "system-probe.yaml"
	SystemProbeAgentSecurityVolumeName = "datadog-agent-security"
	SystemProbeAgentSecurityVolumePath = "/etc/config"
	SystemProbeSecCompRootVolumeName   = "seccomp-root"
	SystemProbeSecCompRootVolumePath   = "/host/var/lib/kubelet/seccomp"
	SystemProbeLibModulesVolumeName    = "modules"
	SystemProbeLibModulesVolumePath    = "/lib/modules"
	SystemProbeUsrSrcVolumeName        = "src"
	SystemProbeUsrSrcVolumePath        = "/usr/src"
	AgentCustomConfigVolumeName        = "custom-datadog-yaml"
	AgentCustomConfigVolumePath        = "/etc/datadog-agent/datadog.yaml"
	AgentCustomConfigVolumeSubPath     = "datadog.yaml"

	HostCriSocketPathPrefix = "/host"

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

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

	DefaultSystemProbeSecCompRootPath = "/var/lib/kubelet/seccomp"
	DefaultAppArmorProfileName        = "unconfined"
	DefaultSeccompProfileName         = "localhost/system-probe"
	SysteProbeAppArmorAnnotationKey   = "container.apparmor.security.beta.kubernetes.io/system-probe"
	SysteProbeSeccompAnnotationKey    = "container.seccomp.security.alpha.kubernetes.io/system-probe"

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

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

	DefaultLivenessProbeInitialDelaySeconds int32 = 15
	DefaultLivenessProbePeriodSeconds       int32 = 15
	DefaultLivenessProbeTimeoutSeconds      int32 = 5
	DefaultLivenessProbeSuccessThreshold    int32 = 1
	DefaultLivenessProbeFailureThreshold    int32 = 6
	DefaultAgentHealthPort                  int32 = 5555
	DefaultLivenessProbeHTTPPath                  = "/live"

	DefaultReadinessProbeInitialDelaySeconds int32 = 15
	DefaultReadinessProbePeriodSeconds       int32 = 15
	DefaultReadinessProbeTimeoutSeconds      int32 = 5
	DefaultReadinessProbeSuccessThreshold    int32 = 1
	DefaultReadinessProbeFailureThreshold    int32 = 6
	DefaultReadinessProbeHTTPPath                  = "/ready"

	DefaultAPMAgentTCPPort int32 = 8126

	CoreAPIGroup           = ""
	OpenShiftQuotaAPIGroup = "quota.openshift.io"
	RbacAPIGroup           = "rbac.authorization.k8s.io"
	AutoscalingAPIGroup    = "autoscaling"
	DatadogAPIGroup        = "datadoghq.com"
	AdmissionAPIGroup      = "admissionregistration.k8s.io"
	AppsAPIGroup           = "apps"
	BatchAPIGroup          = "batch"
	PolicyAPIGroup         = "policy"
	NetworkingAPIGroup     = "networking.k8s.io"

	ServicesResource                    = "services"
	EventsResource                      = "events"
	EndpointsResource                   = "endpoints"
	PodsResource                        = "pods"
	NodesResource                       = "nodes"
	ComponentStatusesResource           = "componentstatuses"
	ConfigMapsResource                  = "configmaps"
	ClusterResourceQuotasResource       = "clusterresourcequotas"
	NodeMetricsResource                 = "nodes/metrics"
	NodeSpecResource                    = "nodes/spec"
	NodeProxyResource                   = "nodes/proxy"
	NodeStats                           = "nodes/stats"
	HorizontalPodAutoscalersRecource    = "horizontalpodautoscalers"
	DatadogMetricsResource              = "datadogmetrics"
	DatadogMetricsStatusResource        = "datadogmetrics/status"
	WpaResource                         = "watermarkpodautoscalers"
	MutatingConfigResource              = "mutatingwebhookconfigurations"
	SecretsResource                     = "secrets"
	ReplicasetsResource                 = "replicasets"
	DeploymentsResource                 = "deployments"
	StatefulsetsResource                = "statefulsets"
	DaemonsetsResource                  = "daemonsets"
	JobsResource                        = "jobs"
	CronjobsResource                    = "cronjobs"
	ExtendedDaemonSetReplicaSetResource = "extendeddaemonsetreplicasets"
	ServiceAccountResource              = "serviceaccounts"
	NamespaceResource                   = "namespaces"
	PodSecurityPolicyResource           = "podsecuritypolicies"
	ClusterRoleBindingResource          = "clusterrolebindings"
	RoleBindingResource                 = "rolebindings"
	NetworkPolicyResource               = "networkpolicies"

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

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

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

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

Datadog env var names

View Source
const (
	DefaultLogLevel string = "INFO"

	DefaultAdmissionServiceName = "datadog-admission-controller"
)

default values

Variables

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

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

	// AddToScheme is a global function that registers this API group & version to a scheme
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func BoolToString

func BoolToString(b *bool) string

BoolToString return "true" if b == true, else "false"

func BoolValue

func BoolValue(b *bool) bool

BoolValue return the boolean value, false if nil

func IsDefaultedDatadogAgent

func IsDefaultedDatadogAgent(ad *DatadogAgent) bool

IsDefaultedDatadogAgent used to check if an DatadogAgent was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecAgentConfig

func IsDefaultedDatadogAgentSpecAgentConfig(config *NodeAgentConfig) bool

IsDefaultedDatadogAgentSpecAgentConfig used to check if a NodeAgentConfig was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecApm

func IsDefaultedDatadogAgentSpecApm(apm *APMSpec) bool

IsDefaultedDatadogAgentSpecApm used to check if an APMSpec was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecClusterAgentConfig

func IsDefaultedDatadogAgentSpecClusterAgentConfig(config *ClusterAgentConfig) bool

IsDefaultedDatadogAgentSpecClusterAgentConfig used to check if a ClusterAgentConfig was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecClusterChecksRunnerConfig

func IsDefaultedDatadogAgentSpecClusterChecksRunnerConfig(config *ClusterChecksRunnerConfig) bool

IsDefaultedDatadogAgentSpecClusterChecksRunnerConfig used to check if a ClusterChecksRunnerConfig was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecDatadogAgentStrategy

func IsDefaultedDatadogAgentSpecDatadogAgentStrategy(strategy *DaemonSetDeploymentStrategy) bool

IsDefaultedDatadogAgentSpecDatadogAgentStrategy used to check if a DaemonSetDeploymentStrategy was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecLog

func IsDefaultedDatadogAgentSpecLog(log *LogSpec) bool

IsDefaultedDatadogAgentSpecLog used to check if an LogSpec was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecProcess

func IsDefaultedDatadogAgentSpecProcess(process *ProcessSpec) bool

IsDefaultedDatadogAgentSpecProcess used to check if an ProcessSpec was already defaulted returns true if yes, else false

func IsDefaultedDatadogAgentSpecRbacConfig

func IsDefaultedDatadogAgentSpecRbacConfig(rbac *RbacConfig) bool

IsDefaultedDatadogAgentSpecRbacConfig used to check if a RbacConfig is defaulted returns true if yes, else false

func IsDefaultedImageConfig

func IsDefaultedImageConfig(imageConfig *ImageConfig) bool

IsDefaultedImageConfig used to check if a ImageConfig was already defaulted returns true if yes, else false

func IsDefaultedNetworkPolicy

func IsDefaultedNetworkPolicy(policy *NetworkPolicySpec) bool

IsDefaultedNetworkPolicy used to check if a NetworkPolicySpec was already defaulted. Returns true if yes, or false otherwise

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 Kind

func Kind(kind string) schema.GroupKind

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

func NewBoolPointer

func NewBoolPointer(b bool) *bool

NewBoolPointer returns pointer on a new bool value instance

func NewInt32Pointer

func NewInt32Pointer(i int32) *int32

NewInt32Pointer returns pointer on a new int32 value instance

func NewInt64Pointer

func NewInt64Pointer(i int64) *int64

NewInt64Pointer returns pointer on a new int32 value instance

func NewStringPointer

func NewStringPointer(s string) *string

NewStringPointer returns pointer on a new string value instance

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
	// ref: 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"`

	// The Datadog Agent supports many environment variables
	// Ref: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,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
	// Ref: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

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

func DefaultDatadogAgentSpecAgentApm

func DefaultDatadogAgentSpecAgentApm(apm *APMSpec) *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 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"`
}

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

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

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

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

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

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

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

	// 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.
	// If `useSecretBackend: true`, other credential parameters will be ignored.
	// 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 (*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 {
	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-agents and the daemonset
	// ref:
	// 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"`

	// Enables this to start event collection from the kubernetes API
	// ref: 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"`

	// 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
	// Ref: 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"`
}

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

func DefaultDatadogAgentSpecClusterAgentConfig

func DefaultDatadogAgentSpecClusterAgentConfig(config *ClusterAgentConfig) *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 {
	// Datadog Cluster Checks Runner resource requests and limits
	Resources *corev1.ResourceRequirements `json:"resources,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
	// Ref: 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"`
}

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

func DefaultDatadogAgentSpecClusterChecksRunnerConfig

func DefaultDatadogAgentSpecClusterChecksRunnerConfig(config *ClusterChecksRunnerConfig) *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"`
}

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 {
	// Name the ConfigMap name
	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"`
	// ConfigMap name of a ConfigMap used to mount the configuration file
	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 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(strategy *DaemonSetDeploymentStrategy) *DaemonSetDeploymentStrategy

DefaultDatadogAgentSpecDatadogAgentStrategy used to default a DaemonSetDeploymentStrategy return the defaulted DaemonSetDeploymentStrategy

func (*DaemonSetDeploymentStrategy) DeepCopy

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

func (*DaemonSetDeploymentStrategy) DeepCopyInto

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

type DaemonSetRollingUpdateSpec

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

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

func (*DaemonSetRollingUpdateSpec) DeepCopy

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

func (*DaemonSetRollingUpdateSpec) DeepCopyInto

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

type DaemonSetStatus

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

	Status      string       `json:"status,omitempty"`
	State       string       `json:"state,omitempty"`
	LastUpdate  *metav1.Time `json:"lastUpdate,omitempty"`
	CurrentHash string       `json:"currentHash,omitempty"`

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

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

func (*DaemonSetStatus) DeepCopy

func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus

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

func (*DaemonSetStatus) DeepCopyInto

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

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

type DatadogAgent

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

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

DatadogAgent Deployment with Datadog Operator +kubebuilder:object:root=true +kubebuilder:subresource:status +kubebuilder: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 DefaultDatadogAgent

func DefaultDatadogAgent(ad *DatadogAgent) *DatadogAgent

DefaultDatadogAgent used to default an DatadogAgent return the defaulted DatadogAgent

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 (
	// ConditionTypeActive DatadogAgent is active
	ConditionTypeActive DatadogAgentConditionType = "Active"
	// ConditionTypeReconcileError the controller wasn't able to run properly the reconcile loop with this DatadogAgent
	ConditionTypeReconcileError DatadogAgentConditionType = "ReconcileError"
	// ConditionTypeSecretError the required Secret doesn't exist.
	ConditionTypeSecretError DatadogAgentConditionType = "SecretError"

	// ConditionTypeActiveDatadogMetrics forwarding metrics and events to Datadog is active
	ConditionTypeActiveDatadogMetrics DatadogAgentConditionType = "ActiveDatadogMetrics"
	// ConditionTypeDatadogMetricsError cannot forward deployment metrics and events to Datadog
	ConditionTypeDatadogMetricsError 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 required to run Agents
	Credentials AgentCredentials `json:"credentials"`

	// 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"`
}

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 {
	// UseExtendedDaemonset use ExtendedDaemonset for Agent deployment.
	// default value is false.
	UseExtendedDaemonset *bool `json:"useExtendedDaemonset,omitempty"`

	// The container image of the Datadog Agent
	Image ImageConfig `json:"image"`

	// 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 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"`

	// 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
	// Ref: 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 LogSpec `json:"log,omitempty"`

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

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

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

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

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

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 {
	// The container image of the Datadog Cluster Agent
	Image ImageConfig `json:"image"`

	// 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 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-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 return the defaulted DatadogAgentSpecClusterAgentSpec

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 {
	// The container image of the Datadog Cluster Checks Runner
	Image ImageConfig `json:"image"`

	// 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 Agent 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 {
	// The actual state of the Agent as an extended daemonset
	// +optional
	Agent *DaemonSetStatus `json:"agent,omitempty"`

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

	// The actual state of the Cluster Checks Runner as a deployment
	// +optional
	ClusterChecksRunner *DeploymentStatus `json:"clusterChecksRunner,omitempty"`

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

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

func (*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 DatadogMetric

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

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

DatadogMetric is the Schema for the datadogmetrics API +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 reversed for internal use
	ExternalMetricName string `json:"externalMetricName,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 DeploymentStatus

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

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

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

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

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

	LastUpdate  *metav1.Time `json:"lastUpdate,omitempty"`
	CurrentHash string       `json:"currentHash,omitempty"`

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

	// Status corresponds to the ClusterAgent deployment computed status
	Status string `json:"status,omitempty"`
	// State corresponds to the ClusterAgent deployment state
	State string `json:"state,omitempty"`

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

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

func (*DeploymentStatus) DeepCopy

func (in *DeploymentStatus) DeepCopy() *DeploymentStatus

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

func (*DeploymentStatus) DeepCopyInto

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

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

type DogstatsdConfig

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

	// Enable dogstatsd over Unix Domain Socket
	// ref: https://docs.datadoghq.com/developers/dogstatsd/unix_socket/
	// +optional
	UseDogStatsDSocketVolume *bool `json:"useDogStatsDSocketVolume,omitempty"`
}

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

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 https://github.com/DataDog/watermarkpodautoscaler for more details.
	// +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"`
}

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

func (*ExternalMetricsConfig) DeepCopy

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

func (*ExternalMetricsConfig) DeepCopyInto

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

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

type ImageConfig

type ImageConfig struct {
	// Define the image to use
	// Use "datadog/agent:latest" for Datadog Agent 6
	// Use "datadog/dogstatsd:latest" for Standalone Datadog Agent DogStatsD6
	// Use "datadog/cluster-agent:latest" for Datadog Cluster Agent
	Name string `json:"name"`

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

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

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

func DefaultDatadogAgentSpecAgentImage

func DefaultDatadogAgentSpecAgentImage(image *ImageConfig) *ImageConfig

DefaultDatadogAgentSpecAgentImage used to default a ImageConfig return the defaulted ImageConfig

func DefaultDatadogAgentSpecClusterAgentImage

func DefaultDatadogAgentSpecClusterAgentImage(image *ImageConfig) *ImageConfig

DefaultDatadogAgentSpecClusterAgentImage used to default ImageConfig for the Datadog Cluster Agent return the defaulted ImageConfig

func DefaultDatadogAgentSpecClusterChecksRunnerImage

func DefaultDatadogAgentSpecClusterChecksRunnerImage(image *ImageConfig) *ImageConfig

DefaultDatadogAgentSpecClusterChecksRunnerImage used to default ImageConfig for the Datadog Cluster Agent return the defaulted ImageConfig

func (*ImageConfig) DeepCopy

func (in *ImageConfig) DeepCopy() *ImageConfig

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

func (*ImageConfig) DeepCopyInto

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

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

type LogSpec

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

	// Enable this to allow log collection for all containers.
	// ref: 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 container runtime API.
	// It's usually the most efficient way of collecting logs.
	// ref: https://docs.datadoghq.com/agent/basic_agent_usage/kubernetes/#log-collection-setup
	// Default: true
	//
	// +optional
	ContainerCollectUsingFiles *bool `json:"containerCollectUsingFiles,omitempty"`

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

	// This to allow log collection from pod log path.
	// Default to `/var/log/pods`
	//
	// +optional
	PodLogsPath *string `json:"podLogsPath,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 allows to start tailing the log files from the right offset
	// Default to `/var/lib/datadog-agent/logs`
	//
	// +optional
	TempStoragePath *string `json:"tempStoragePath,omitempty"`

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

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

func DefaultDatadogAgentSpecAgentLog

func DefaultDatadogAgentSpecAgentLog(log *LogSpec) *LogSpec

DefaultDatadogAgentSpecAgentLog used to default an LogSpec return the defaulted LogSpec

func (*LogSpec) DeepCopy

func (in *LogSpec) DeepCopy() *LogSpec

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

func (*LogSpec) DeepCopyInto

func (in *LogSpec) DeepCopyInto(out *LogSpec)

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

type NetworkPolicySpec

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

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

func DefaultNetworkPolicy

func DefaultNetworkPolicy(policy *NetworkPolicySpec) *NetworkPolicySpec

DefaultNetworkPolicy is used to default NetworkPolicy. Returns the defaulted ImageConfig

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 Labels to Datadog Tags.
	// <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
	// +optional
	PodLabelsAsTags map[string]string `json:"podLabelsAsTags,omitempty"`

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

	// 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"`

	// nables this to start event collection from the kubernetes API
	// ref: 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
	// Ref: 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
	// Ref: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,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"`
}

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

func DefaultDatadogAgentSpecAgentConfig

func DefaultDatadogAgentSpecAgentConfig(config *NodeAgentConfig) *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 ProcessSpec

type ProcessSpec struct {
	// Enable this to activate live process monitoring.
	// Note: /etc/passwd is automatically mounted to allow username resolution.
	// ref: https://docs.datadoghq.com/graphing/infrastructure/process/#kubernetes-daemonset
	//
	// +optional
	Enabled *bool `json:"enabled,omitempty"`
	// The Datadog Agent supports many environment variables
	// Ref: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,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
	// Ref: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

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

func DefaultDatadogAgentSpecAgentProcess

func DefaultDatadogAgentSpecAgentProcess(process *ProcessSpec) *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 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(rbac *RbacConfig) *RbacConfig

DefaultDatadogAgentSpecRbacConfig used to default a RbacConfig return the defaulted RbacConfig

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 Secret

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

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

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

func (*Secret) DeepCopy

func (in *Secret) DeepCopy() *Secret

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

func (*Secret) DeepCopyInto

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

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

type SecuritySpec

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

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

	// The Datadog Security Agent supports many environment variables
	// Ref: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=map
	// +listMapKey=name
	Env []corev1.EnvVar `json:"env,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
	// Ref: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

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

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.
	// ref: https://docs.datadoghq.com/graphing/infrastructure/process/#kubernetes-daemonset
	// +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
	// +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
	// Ref: 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"`

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

	// Datadog SystemProbe resource requests and limits
	// Make sure to keep requests and limits equal to keep the pods in the Guaranteed QoS class
	// Ref: http://kubernetes.io/docs/user-guide/compute-resources/
	Resources *corev1.ResourceRequirements `json:"resources,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 (*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