Skip to content

Commit

Permalink
[cleanup] move some common constants to v2alpha1 (#1432)
Browse files Browse the repository at this point in the history
  • Loading branch information
celenechang authored Sep 25, 2024
1 parent e740b32 commit a798a7a
Show file tree
Hide file tree
Showing 49 changed files with 320 additions and 350 deletions.
197 changes: 58 additions & 139 deletions api/datadoghq/common/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@

package common

import (
"time"

appsv1 "k8s.io/api/apps/v1"
)

// TODO move most of these constants out of common

// This file tracks constants related to setting up the Datadog Agents
Expand All @@ -26,81 +20,6 @@ const (
MD5AgentDeploymentAnnotationKey = "agent.datadoghq.com/agentspechash"
// MD5ChecksumAnnotationKey annotation key is used to identify customConfig configurations
MD5ChecksumAnnotationKey = "checksum/%s-custom-config"

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

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

// ExtendedDaemonset defaulting
DefaultRollingUpdateMaxUnavailable = "10%"
DefaultUpdateStrategy = appsv1.RollingUpdateDaemonSetStrategyType
DefaultRollingUpdateMaxPodSchedulerFailure = "10%"
DefaultRollingUpdateMaxParallelPodCreation int32 = 250
DefaultRollingUpdateSlowStartIntervalDuration = 1 * time.Minute
DefaultRollingUpdateSlowStartAdditiveIncrease = "5"
DefaultReconcileFrequency = 10 * time.Second

KubeServicesAndEndpointsConfigProviders = "kube_services kube_endpoints"
KubeServicesAndEndpointsListeners = "kube_services kube_endpoints"
EndpointsChecksConfigProvider = "endpointschecks"
ClusterAndEndpointsConfigProviders = "clusterchecks endpointschecks"
)

// Annotations
Expand Down Expand Up @@ -205,64 +124,64 @@ const (
SystemProbeConfigVolumePath = "/etc/datadog-agent/system-probe.yaml"
OtelCustomConfigVolumePath = "/etc/datadog-agent/otel-config.yaml"

LogDatadogVolumeName = "logdatadog"
LogDatadogVolumePath = "/var/log/datadog"
TmpVolumeName = "tmp"
TmpVolumePath = "/tmp"
CertificatesVolumeName = "certificates"
CertificatesVolumePath = "/etc/datadog-agent/certificates"
AuthVolumeName = "datadog-agent-auth"
AuthVolumePath = "/etc/datadog-agent/auth"
InstallInfoVolumeName = "installinfo"
InstallInfoVolumeSubPath = "install_info"
InstallInfoVolumePath = "/etc/datadog-agent/install_info"
InstallInfoVolumeReadOnly = true
PointerVolumeName = "pointerdir"
PointerVolumePath = "/opt/datadog-agent/run"
LogTempStoragePath = "/var/lib/datadog-agent/logs"
PodLogVolumeName = "logpodpath"
PodLogVolumePath = "/var/log/pods"
ContainerLogVolumeName = "logcontainerpath"
ContainerLogVolumePath = "/var/lib/docker/containers"
SymlinkContainerVolumeName = "symlinkcontainerpath"
SymlinkContainerVolumePath = "/var/log/containers"
DogstatsdHostPortName = "dogstatsdport"
DogstatsdHostPortHostPort = 8125
DogstatsdSocketVolumeName = "dsdsocket"
DogstatsdAPMSocketHostPath = "/var/run/datadog"
DogstatsdSocketLocalPath = "/var/run/datadog"
DogstatsdSocketName = "dsd.socket"
SecurityAgentComplianceCustomConfigDirVolumeName = "customcompliancebenchmarks"
SecurityAgentComplianceConfigDirVolumeName = "compliancedir"
SecurityAgentComplianceConfigDirVolumePath = "/etc/datadog-agent/compliance.d"
SecurityAgentRuntimeCustomPoliciesVolumeName = "customruntimepolicies"
SecurityAgentRuntimeCustomPoliciesVolumePath = "/etc/datadog-agent-runtime-policies"
SecurityAgentRuntimePoliciesDirVolumeName = "runtimepoliciesdir"
SecurityAgentRuntimePoliciesDirVolumePath = "/etc/datadog-agent/runtime-security.d"
HostCriSocketPathPrefix = "/host"
CriSocketVolumeName = "runtimesocketdir"
RuntimeDirVolumePath = "/var/run"
KubeletAgentCAPath = "/var/run/host-kubelet-ca.crt"
KubeletCAVolumeName = "kubelet-ca"
APMHostPortName = "traceport"
APMHostPortHostPort = 8126
APMSocketVolumeName = "apmsocket"
APMSocketVolumeLocalPath = "/var/run/datadog"
APMSocketName = "apm.socket"
AdmissionControllerPortName = "admissioncontrollerport"
AdmissionControllerSocketCommunicationMode = "socket"
ExternalMetricsPortName = "metricsapi"
ExternalMetricsAPIServiceName = "v1beta1.external.metrics.k8s.io"
OTLPGRPCPortName = "otlpgrpcport"
OTLPHTTPPortName = "otlphttpport"
SeccompSecurityVolumeName = "datadog-agent-security"
SeccompSecurityVolumePath = "/etc/config"
SeccompRootVolumeName = "seccomp-root"
SeccompRootVolumePath = "/host/var/lib/kubelet/seccomp"
SeccompRootPath = "/var/lib/kubelet/seccomp"
SystemProbeSeccompKey = "system-probe-seccomp.json"
SystemProbeAgentSecurityConfigMapSuffixName = "system-probe-seccomp"
SystemProbeSeccompProfileName = "system-probe"
LogDatadogVolumeName = "logdatadog"
LogDatadogVolumePath = "/var/log/datadog"
TmpVolumeName = "tmp"
TmpVolumePath = "/tmp"
CertificatesVolumeName = "certificates"
CertificatesVolumePath = "/etc/datadog-agent/certificates"
AuthVolumeName = "datadog-agent-auth"
AuthVolumePath = "/etc/datadog-agent/auth"
InstallInfoVolumeName = "installinfo"
InstallInfoVolumeSubPath = "install_info"
InstallInfoVolumePath = "/etc/datadog-agent/install_info"
InstallInfoVolumeReadOnly = true
PointerVolumeName = "pointerdir"
PointerVolumePath = "/opt/datadog-agent/run"
LogTempStoragePath = "/var/lib/datadog-agent/logs"
PodLogVolumeName = "logpodpath"
PodLogVolumePath = "/var/log/pods"
ContainerLogVolumeName = "logcontainerpath"
ContainerLogVolumePath = "/var/lib/docker/containers"
SymlinkContainerVolumeName = "symlinkcontainerpath"
SymlinkContainerVolumePath = "/var/log/containers"
DogstatsdHostPortName = "dogstatsdport"
DogstatsdHostPortHostPort = 8125
DogstatsdSocketVolumeName = "dsdsocket"
DogstatsdAPMSocketHostPath = "/var/run/datadog"
DogstatsdSocketLocalPath = "/var/run/datadog"
DogstatsdSocketName = "dsd.socket"
// SecurityAgentComplianceCustomConfigDirVolumeName = "customcompliancebenchmarks" // Not used
SecurityAgentComplianceConfigDirVolumeName = "compliancedir"
SecurityAgentComplianceConfigDirVolumePath = "/etc/datadog-agent/compliance.d"
SecurityAgentRuntimeCustomPoliciesVolumeName = "customruntimepolicies"
SecurityAgentRuntimeCustomPoliciesVolumePath = "/etc/datadog-agent-runtime-policies"
SecurityAgentRuntimePoliciesDirVolumeName = "runtimepoliciesdir"
SecurityAgentRuntimePoliciesDirVolumePath = "/etc/datadog-agent/runtime-security.d"
HostCriSocketPathPrefix = "/host"
CriSocketVolumeName = "runtimesocketdir"
RuntimeDirVolumePath = "/var/run"
KubeletAgentCAPath = "/var/run/host-kubelet-ca.crt"
KubeletCAVolumeName = "kubelet-ca"
APMHostPortName = "traceport"
// APMHostPortHostPort = 8126 // Not used
APMSocketVolumeName = "apmsocket"
APMSocketVolumeLocalPath = "/var/run/datadog"
APMSocketName = "apm.socket"
AdmissionControllerPortName = "admissioncontrollerport"
AdmissionControllerSocketCommunicationMode = "socket"
ExternalMetricsPortName = "metricsapi"
ExternalMetricsAPIServiceName = "v1beta1.external.metrics.k8s.io"
OTLPGRPCPortName = "otlpgrpcport"
OTLPHTTPPortName = "otlphttpport"
SeccompSecurityVolumeName = "datadog-agent-security"
SeccompSecurityVolumePath = "/etc/config"
SeccompRootVolumeName = "seccomp-root"
SeccompRootVolumePath = "/host/var/lib/kubelet/seccomp"
SeccompRootPath = "/var/lib/kubelet/seccomp"
SystemProbeSeccompKey = "system-probe-seccomp.json"
SystemProbeAgentSecurityConfigMapSuffixName = "system-probe-seccomp"
SystemProbeSeccompProfileName = "system-probe"

AppArmorAnnotationKey = "container.apparmor.security.beta.kubernetes.io"

Expand Down
62 changes: 61 additions & 1 deletion api/datadoghq/v2alpha1/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

package v2alpha1

// This file tracks constants closely related to the CRD, such as ConditionTypes
// This file tracks constants closely related to the DatadogAgent CRD

const (

Expand Down Expand Up @@ -56,4 +56,64 @@ const (
DefaultApmPort = 8126
// DefaultApmPortName default apm port name
DefaultApmPortName = "traceport"

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

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

KubeServicesAndEndpointsConfigProviders = "kube_services kube_endpoints"
KubeServicesAndEndpointsListeners = "kube_services kube_endpoints"
EndpointsChecksConfigProvider = "endpointschecks"
ClusterAndEndpointsConfigProviders = "clusterchecks endpointschecks"
)
11 changes: 5 additions & 6 deletions api/datadoghq/v2alpha1/datadogagent_default.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ const (

defaultDogstatsdOriginDetectionEnabled bool = false
defaultDogstatsdHostPortEnabled bool = false
defaultDogstatsdPort int32 = 8125
defaultDogstatsdSocketEnabled bool = true
defaultDogstatsdHostSocketPath string = apicommon.DogstatsdAPMSocketHostPath + "/" + apicommon.DogstatsdSocketName

Expand Down Expand Up @@ -138,13 +137,13 @@ func defaultGlobalConfig(ddaSpec *DatadogAgentSpec) {
if ddaSpec.Global.Registry == nil {
switch *ddaSpec.Global.Site {
case defaultEuropeSite:
ddaSpec.Global.Registry = apiutils.NewStringPointer(apicommon.DefaultEuropeImageRegistry)
ddaSpec.Global.Registry = apiutils.NewStringPointer(DefaultEuropeImageRegistry)
case defaultAsiaSite:
ddaSpec.Global.Registry = apiutils.NewStringPointer(apicommon.DefaultAsiaImageRegistry)
ddaSpec.Global.Registry = apiutils.NewStringPointer(DefaultAsiaImageRegistry)
case defaultGovSite:
ddaSpec.Global.Registry = apiutils.NewStringPointer(apicommon.DefaultGovImageRegistry)
ddaSpec.Global.Registry = apiutils.NewStringPointer(DefaultGovImageRegistry)
default:
ddaSpec.Global.Registry = apiutils.NewStringPointer(apicommon.DefaultImageRegistry)
ddaSpec.Global.Registry = apiutils.NewStringPointer(DefaultImageRegistry)
}
}

Expand Down Expand Up @@ -359,7 +358,7 @@ func defaultFeaturesConfig(ddaSpec *DatadogAgentSpec) {
}

if *ddaSpec.Features.Dogstatsd.HostPortConfig.Enabled {
apiutils.DefaultInt32IfUnset(&ddaSpec.Features.Dogstatsd.HostPortConfig.Port, defaultDogstatsdPort)
apiutils.DefaultInt32IfUnset(&ddaSpec.Features.Dogstatsd.HostPortConfig.Port, DefaultDogstatsdPort)
}

if ddaSpec.Features.Dogstatsd.UnixDomainSocketConfig == nil {
Expand Down
Loading

0 comments on commit a798a7a

Please sign in to comment.