v1alpha1

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: May 6, 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
)
View Source
const (
	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"
	DDDogstatsdOriginDetection      = "DD_DOGSTATSD_ORIGIN_DETECTION"
	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"
	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"

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

	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"
	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"
	AgentCustomConfigVolumeName        = "custom-datadog-yaml"
	AgentCustomConfigVolumePath        = "/etc/datadog-agent/datadog.yaml"
	AgentCustomConfigVolumeSubPath     = "datadog.yaml"
	HostCriSocketPathPrefix            = "/host"

	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"

	DefaultLivenessProveInitialDelaySeconds int32 = 15
	DefaultLivenessProvePeriodSeconds       int32 = 15
	DefaultLivenessProveTimeoutSeconds      int32 = 5
	DefaultLivenessProveSuccessThreshold    int32 = 1
	DefaultLivenessProveFailureThreshold    int32 = 6
	DefaultAgentHealthPort                  int32 = 5555
	DefaultLivenessProveHTTPPath                  = "/health"

	DefaultAPMAgentTCPPort int32 = 8126

	CoreAPIGroup           = ""
	OpenShiftQuotaAPIGroup = "quota.openshift.io"
	RbacAPIGroup           = "rbac.authorization.k8s.io"
	AutoscalingAPIGroup    = "autoscaling"

	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"

	DatadogTokenResourceName           = "datadogtoken"
	DatadogLeaderElectionResourceName  = "datadog-leader-election"
	DatadogCustomMetricsResourceName   = "datadog-custom-metrics"
	ExtensionAPIServerAuthResourceName = "extension-apiserver-authentication"

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

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

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

Datadog env var names

View Source
const (
	DefaultLogLevel string = "INFO"
)

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 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 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=set
	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 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 Use existing Secret which stores API key instead of creating a new one.
	// If set, this parameter takes precedence over "apiKey".
	// +optional
	APIKeyExistingSecret string `json:"apiKeyExistingSecret,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"`

	// Use existing Secret which stores APP key instead of creating a new one
	// If set, this parameter takes precedence over "appKey".
	// +optional
	AppKeyExistingSecret string `json:"appKeyExistingSecret,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 {
	// Enable container runtime socket volume mounting
	UseCriSocketVolume *bool `json:"useCriSocketVolume,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 {
	// Enable the metricsProvider to be able to scale based on metrics in Datadog
	MetricsProviderEnabled *bool `json:"metricsProviderEnabled,omitempty"`

	// If specified configures the metricsProvider external metrics service port
	// +optional
	MetricsProviderPort *int32 `json:"metricsProviderPort,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"`

	// 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=set
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Specify additional volumes in the Datadog Cluster Agent container
	// +optional
	// +listType=set
	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=set
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Specify additional volumes in the Datadog Cluster Agent container
	// +optional
	// +listType=set
	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 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 +k8s:openapi-gen=true +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"

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=set
	Items []DatadogAgent `json:"items"`
}

DatadogAgentList contains a list of DatadogAgent +k8s:openapi-gen=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"`

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

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

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=set
	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"`
}

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=set
	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"`
}

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=set
	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 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 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"`

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

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 NodeAgentConfig

type NodeAgentConfig struct {
	// You can modify the security context used to run the containers by
	// modifying the label type
	// +optional
	SecurityContext *corev1.SecurityContext `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=set
	Env []corev1.EnvVar `json:"env,omitempty"`

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

	// Specify additional volumes in the Datadog Agent container
	// +optional
	// +listType=set
	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=set
	Tolerations []corev1.Toleration `json:"tolerations,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=set
	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 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"`

	// The Datadog SystemProbe supports many environment variables
	// Ref: https://docs.datadoghq.com/agent/docker/?tab=standard#environment-variables
	//
	// +optional
	// +listType=set
	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