From 7e13a3d8b511357efa8bd3d71c80555b509060cb Mon Sep 17 00:00:00 2001 From: Celene Date: Wed, 11 Sep 2024 16:56:50 -0400 Subject: [PATCH 1/2] [cleanup] move uncommon items from api/common/v1 --- api/datadoghq/common/common.go | 97 -------- api/datadoghq/common/common_test.go | 101 -------- api/datadoghq/common/const.go | 33 +-- api/datadoghq/common/envvar.go | 2 + api/datadoghq/common/{v1 => }/types.go | 74 ++---- api/datadoghq/common/v1/agent_types.go | 154 ------------ api/datadoghq/common/v1/customConfig.go | 22 -- .../common/v1/zz_generated.deepcopy.go | 214 ----------------- api/datadoghq/common/zz_generated.deepcopy.go | 59 +++++ .../v1alpha1/datadogagentprofile_types.go | 6 +- .../datadogagentprofile_validation_test.go | 12 +- .../v1alpha1/zz_generated.deepcopy.go | 6 +- api/datadoghq/v2alpha1/condition.go | 23 +- api/datadoghq/v2alpha1/const.go | 32 +++ .../v2alpha1/datadogagent_default.go | 3 +- .../v2alpha1/datadogagent_default_test.go | 3 +- api/datadoghq/v2alpha1/datadogagent_types.go | 227 +++++++++++++++--- api/datadoghq/v2alpha1/test/builder.go | 5 +- api/datadoghq/v2alpha1/utils.go | 107 +++++++-- api/datadoghq/v2alpha1/utils_test.go | 119 +++++---- .../v2alpha1/zz_generated.deepcopy.go | 163 +++++++++++-- .../v2alpha1/zz_generated.openapi.go | 211 ++++++++++++++-- cmd/check-operator/upgrade/upgrade.go | 5 +- .../controller/datadogagent/common/utils.go | 4 +- .../datadogagent/component/agent/default.go | 51 ++-- .../component/clusteragent/default.go | 12 +- .../component/clusterchecksrunner/default.go | 12 +- .../controller_reconcile_agent.go | 3 +- .../controller_reconcile_agent_test.go | 17 +- .../datadogagent/controller_reconcile_v2.go | 3 +- .../controller_reconcile_v2_test.go | 2 +- .../datadogagent/controller_v2_test.go | 67 +++--- .../feature/admissioncontroller/feature.go | 37 ++- .../admissioncontroller/feature_test.go | 11 +- .../datadogagent/feature/apm/feature.go | 49 ++-- .../datadogagent/feature/apm/feature_test.go | 53 ++-- .../datadogagent/feature/asm/feature.go | 11 +- .../datadogagent/feature/asm/feature_test.go | 3 +- .../feature/autoscaling/feature.go | 3 +- .../feature/autoscaling/feature_test.go | 3 +- .../feature/clusterchecks/feature.go | 17 +- .../feature/clusterchecks/feature_test.go | 17 +- .../datadogagent/feature/cspm/feature.go | 45 ++-- .../datadogagent/feature/cspm/feature_test.go | 15 +- .../datadogagent/feature/cws/feature.go | 65 +++-- .../datadogagent/feature/cws/feature_test.go | 19 +- .../datadogagent/feature/dogstatsd/feature.go | 21 +- .../feature/dogstatsd/feature_test.go | 9 +- .../datadogagent/feature/ebpfcheck/feature.go | 19 +- .../feature/ebpfcheck/feature_test.go | 11 +- .../feature/enabledefault/feature.go | 7 +- .../feature/enabledefault/feature_test.go | 3 +- .../feature/eventcollection/feature.go | 19 +- .../feature/eventcollection/feature_test.go | 5 +- .../feature/externalmetrics/feature.go | 17 +- .../feature/externalmetrics/feature_test.go | 7 +- .../datadogagent/feature/factory.go | 2 +- .../datadogagent/feature/helmcheck/feature.go | 3 +- .../feature/helmcheck/feature_test.go | 3 +- .../kubernetesstatecore/configmap_test.go | 7 +- .../feature/kubernetesstatecore/feature.go | 13 +- .../kubernetesstatecore/feature_test.go | 10 +- .../feature/livecontainer/feature.go | 21 +- .../feature/livecontainer/feature_test.go | 23 +- .../feature/liveprocess/feature.go | 21 +- .../feature/liveprocess/feature_test.go | 25 +- .../feature/logcollection/feature.go | 11 +- .../feature/logcollection/feature_test.go | 5 +- .../datadogagent/feature/npm/feature.go | 39 ++- .../datadogagent/feature/npm/feature_test.go | 15 +- .../datadogagent/feature/oomkill/feature.go | 23 +- .../feature/oomkill/feature_test.go | 11 +- .../orchestratorexplorer/configmap_test.go | 7 +- .../feature/orchestratorexplorer/feature.go | 21 +- .../orchestratorexplorer/feature_test.go | 19 +- .../datadogagent/feature/otlp/feature.go | 27 +-- .../datadogagent/feature/otlp/feature_test.go | 13 +- .../feature/processdiscovery/feature.go | 21 +- .../feature/processdiscovery/feature_test.go | 25 +- .../feature/prometheusscrape/feature.go | 23 +- .../feature/prometheusscrape/feature_test.go | 19 +- .../feature/remoteconfig/feature.go | 9 +- .../feature/remoteconfig/feature_test.go | 7 +- .../datadogagent/feature/sbom/feature.go | 31 ++- .../datadogagent/feature/sbom/feature_test.go | 15 +- .../feature/tcpqueuelength/feature.go | 23 +- .../feature/tcpqueuelength/feature_test.go | 11 +- .../datadogagent/feature/test/factory_test.go | 118 ++++----- .../datadogagent/feature/test/testsuite.go | 4 +- .../controller/datadogagent/feature/types.go | 9 +- .../datadogagent/feature/types_test.go | 42 ++-- .../datadogagent/feature/usm/feature.go | 39 ++- .../datadogagent/feature/usm/feature_test.go | 11 +- .../controller/datadogagent/merger/envvars.go | 22 +- .../datadogagent/merger/envvars_test.go | 38 +-- .../datadogagent/merger/fake/const.go | 4 +- .../merger/fake/envvar_manager.go | 14 +- .../datadogagent/merger/fake/port_manager.go | 10 +- .../merger/fake/security_context_manager.go | 8 +- .../merger/fake/volume_mount_manager.go | 20 +- .../controller/datadogagent/merger/port.go | 10 +- .../datadogagent/merger/security_context.go | 6 +- .../merger/security_context_test.go | 36 +-- .../controller/datadogagent/merger/utils.go | 20 +- .../datadogagent/merger/volume_mount.go | 20 +- .../datadogagent/merger/volume_mount_test.go | 38 +-- .../datadogagent/object/volume/volumes.go | 5 +- .../datadogagent/override/container.go | 29 ++- .../datadogagent/override/container_test.go | 89 ++++--- .../datadogagent/override/daemonset_test.go | 6 +- .../override/dependencies_test.go | 5 +- .../controller/datadogagent/override/fips.go | 19 +- .../datadogagent/override/fips_test.go | 25 +- .../datadogagent/override/global.go | 29 ++- .../datadogagent/override/global_test.go | 14 +- .../datadogagent/override/podtemplatespec.go | 5 +- .../override/podtemplatespec_test.go | 55 +++-- .../datadogagent_controller_profiles_test.go | 171 +++++++------ internal/controller/testutils/agent.go | 19 +- pkg/agentprofile/agent_profile.go | 17 +- pkg/agentprofile/agent_profile_test.go | 37 ++- .../utils/datadog/metrics_forwarder.go | 9 +- .../utils/datadog/metrics_forwarder_test.go | 3 +- pkg/defaulting/images.go | 2 +- pkg/plugin/common/statuswrapper.go | 13 +- pkg/plugin/common/v2support.go | 5 +- 126 files changed, 1894 insertions(+), 1950 deletions(-) delete mode 100644 api/datadoghq/common/common.go delete mode 100644 api/datadoghq/common/common_test.go rename api/datadoghq/common/{v1 => }/types.go (57%) delete mode 100644 api/datadoghq/common/v1/agent_types.go delete mode 100644 api/datadoghq/common/v1/customConfig.go delete mode 100644 api/datadoghq/common/v1/zz_generated.deepcopy.go create mode 100644 api/datadoghq/common/zz_generated.deepcopy.go diff --git a/api/datadoghq/common/common.go b/api/datadoghq/common/common.go deleted file mode 100644 index 7dced0d7c..000000000 --- a/api/datadoghq/common/common.go +++ /dev/null @@ -1,97 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package common - -import ( - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" - "github.com/DataDog/datadog-operator/pkg/defaulting" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -// GetDefaultLivenessProbe creates a defaulted LivenessProbe -func GetDefaultLivenessProbe() *corev1.Probe { - livenessProbe := &corev1.Probe{ - InitialDelaySeconds: DefaultLivenessProbeInitialDelaySeconds, - PeriodSeconds: DefaultLivenessProbePeriodSeconds, - TimeoutSeconds: DefaultLivenessProbeTimeoutSeconds, - SuccessThreshold: DefaultLivenessProbeSuccessThreshold, - FailureThreshold: DefaultLivenessProbeFailureThreshold, - } - livenessProbe.HTTPGet = &corev1.HTTPGetAction{ - Path: DefaultLivenessProbeHTTPPath, - Port: intstr.IntOrString{ - IntVal: DefaultAgentHealthPort, - }, - } - return livenessProbe -} - -// GetDefaultReadinessProbe creates a defaulted ReadinessProbe -func GetDefaultReadinessProbe() *corev1.Probe { - readinessProbe := &corev1.Probe{ - InitialDelaySeconds: DefaultReadinessProbeInitialDelaySeconds, - PeriodSeconds: DefaultReadinessProbePeriodSeconds, - TimeoutSeconds: DefaultReadinessProbeTimeoutSeconds, - SuccessThreshold: DefaultReadinessProbeSuccessThreshold, - FailureThreshold: DefaultReadinessProbeFailureThreshold, - } - readinessProbe.HTTPGet = &corev1.HTTPGetAction{ - Path: DefaultReadinessProbeHTTPPath, - Port: intstr.IntOrString{ - IntVal: DefaultAgentHealthPort, - }, - } - return readinessProbe -} - -// GetDefaultStartupProbe creates a defaulted StartupProbe -func GetDefaultStartupProbe() *corev1.Probe { - startupProbe := &corev1.Probe{ - InitialDelaySeconds: DefaultStartupProbeInitialDelaySeconds, - PeriodSeconds: DefaultStartupProbePeriodSeconds, - TimeoutSeconds: DefaultStartupProbeTimeoutSeconds, - SuccessThreshold: DefaultStartupProbeSuccessThreshold, - FailureThreshold: DefaultStartupProbeFailureThreshold, - } - startupProbe.HTTPGet = &corev1.HTTPGetAction{ - Path: DefaultStartupProbeHTTPPath, - Port: intstr.IntOrString{ - IntVal: DefaultAgentHealthPort, - }, - } - return startupProbe -} - -// GetDefaultTraceAgentProbe creates a defaulted liveness/readiness probe for the Trace Agent -func GetDefaultTraceAgentProbe() *corev1.Probe { - probe := &corev1.Probe{ - InitialDelaySeconds: DefaultLivenessProbeInitialDelaySeconds, - PeriodSeconds: DefaultLivenessProbePeriodSeconds, - TimeoutSeconds: DefaultLivenessProbeTimeoutSeconds, - } - probe.TCPSocket = &corev1.TCPSocketAction{ - Port: intstr.IntOrString{ - IntVal: DefaultApmPort, - }, - } - return probe -} - -// GetImage builds the image string based on ImageConfig and the registry configuration. -func GetImage(imageSpec *commonv1.AgentImageConfig, registry *string) string { - if defaulting.IsImageNameContainsTag(imageSpec.Name) { - return imageSpec.Name - } - - img := defaulting.NewImage(imageSpec.Name, imageSpec.Tag, imageSpec.JMXEnabled) - - if registry != nil && *registry != "" { - defaulting.WithRegistry(defaulting.ContainerRegistry(*registry))(img) - } - - return img.String() -} diff --git a/api/datadoghq/common/common_test.go b/api/datadoghq/common/common_test.go deleted file mode 100644 index 0284e2ed9..000000000 --- a/api/datadoghq/common/common_test.go +++ /dev/null @@ -1,101 +0,0 @@ -package common - -import ( - "testing" - - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" - apiutils "github.com/DataDog/datadog-operator/api/utils" - "github.com/DataDog/datadog-operator/pkg/defaulting" - "github.com/stretchr/testify/assert" -) - -func Test_GetImage(t *testing.T) { - emptyRegistry := "" - tests := []struct { - name string - imageSpec *commonv1.AgentImageConfig - registry *string - want string - }{ - { - name: "backward compatible", - imageSpec: &commonv1.AgentImageConfig{ - Name: defaulting.GetLatestAgentImage(), - }, - registry: nil, - want: defaulting.GetLatestAgentImage(), - }, - { - name: "nominal case", - imageSpec: &commonv1.AgentImageConfig{ - Name: "agent", - Tag: "7", - }, - registry: apiutils.NewStringPointer("public.ecr.aws/datadog"), - want: "public.ecr.aws/datadog/agent:7", - }, - { - name: "prioritize the full path", - imageSpec: &commonv1.AgentImageConfig{ - Name: "docker.io/datadog/agent:7.28.1-rc.3", - Tag: "latest", - }, - registry: apiutils.NewStringPointer("gcr.io/datadoghq"), - want: "docker.io/datadog/agent:7.28.1-rc.3", - }, - { - name: "default registry", - imageSpec: &commonv1.AgentImageConfig{ - Name: "agent", - Tag: "latest", - }, - registry: &emptyRegistry, - want: "gcr.io/datadoghq/agent:latest", - }, - { - name: "add jmx", - imageSpec: &commonv1.AgentImageConfig{ - Name: "agent", - Tag: defaulting.AgentLatestVersion, - JMXEnabled: true, - }, - registry: nil, - want: defaulting.GetLatestAgentImageJMX(), - }, - { - name: "cluster-agent", - imageSpec: &commonv1.AgentImageConfig{ - Name: "cluster-agent", - Tag: defaulting.ClusterAgentLatestVersion, - JMXEnabled: false, - }, - registry: nil, - want: defaulting.GetLatestClusterAgentImage(), - }, - { - name: "do not duplicate jmx", - imageSpec: &commonv1.AgentImageConfig{ - Name: "agent", - Tag: "latest-jmx", - JMXEnabled: true, - }, - registry: nil, - want: "gcr.io/datadoghq/agent:latest-jmx", - }, - { - name: "do not add jmx", - imageSpec: &commonv1.AgentImageConfig{ - Name: "agent", - Tag: "latest-jmx", - JMXEnabled: true, - }, - registry: nil, - want: "gcr.io/datadoghq/agent:latest-jmx", - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - assert.Equal(t, tt.want, GetImage(tt.imageSpec, tt.registry)) - }) - } -} diff --git a/api/datadoghq/common/const.go b/api/datadoghq/common/const.go index 83197494d..4c4e22c49 100644 --- a/api/datadoghq/common/const.go +++ b/api/datadoghq/common/const.go @@ -11,6 +11,8 @@ import ( appsv1 "k8s.io/api/apps/v1" ) +// TODO move most of these constants out of common + // Datadog const value const ( // AgentDeploymentNameLabelKey label key use to link a Resource to a DatadogAgent @@ -60,10 +62,6 @@ const ( DefaultDogstatsdPort = 8125 // DefaultDogstatsdPortName default dogstatsd port name DefaultDogstatsdPortName = "dogstatsdport" - // DefaultApmPort default apm port - DefaultApmPort = 8126 - // DefaultApmPortName default apm port name - DefaultApmPortName = "traceport" // DefaultMetricsProviderPort default metrics provider port DefaultMetricsProviderPort int32 = 8443 // DefaultKubeStateMetricsCoreConf default ksm core ConfigMap name @@ -81,33 +79,6 @@ const ( // DefaultHelmCheckConf default Helm Check ConfigMap name DefaultHelmCheckConf string = "helm-check-config" - // DefaultAgentHealthPort default agent health port - DefaultAgentHealthPort int32 = 5555 - - // Liveness probe default config - DefaultLivenessProbeInitialDelaySeconds int32 = 15 - DefaultLivenessProbePeriodSeconds int32 = 15 - DefaultLivenessProbeTimeoutSeconds int32 = 5 - DefaultLivenessProbeSuccessThreshold int32 = 1 - DefaultLivenessProbeFailureThreshold int32 = 6 - DefaultLivenessProbeHTTPPath = "/live" - - // Readiness probe default config - DefaultReadinessProbeInitialDelaySeconds int32 = 15 - DefaultReadinessProbePeriodSeconds int32 = 15 - DefaultReadinessProbeTimeoutSeconds int32 = 5 - DefaultReadinessProbeSuccessThreshold int32 = 1 - DefaultReadinessProbeFailureThreshold int32 = 6 - DefaultReadinessProbeHTTPPath = "/ready" - - // Startup probe default config - DefaultStartupProbeInitialDelaySeconds int32 = 15 - DefaultStartupProbePeriodSeconds int32 = 15 - DefaultStartupProbeTimeoutSeconds int32 = 5 - DefaultStartupProbeSuccessThreshold int32 = 1 - DefaultStartupProbeFailureThreshold int32 = 6 - DefaultStartupProbeHTTPPath = "/startup" - // Default Image name DefaultAgentImageName string = "agent" DefaultClusterAgentImageName string = "cluster-agent" diff --git a/api/datadoghq/common/envvar.go b/api/datadoghq/common/envvar.go index 4ddadd4be..4677b87da 100644 --- a/api/datadoghq/common/envvar.go +++ b/api/datadoghq/common/envvar.go @@ -5,6 +5,8 @@ package common +// TODO move most of these out of common + // Datadog env var names const ( DatadogHost = "DATADOG_HOST" diff --git a/api/datadoghq/common/v1/types.go b/api/datadoghq/common/types.go similarity index 57% rename from api/datadoghq/common/v1/types.go rename to api/datadoghq/common/types.go index b5a091169..74242d6cd 100644 --- a/api/datadoghq/common/v1/types.go +++ b/api/datadoghq/common/types.go @@ -5,63 +5,33 @@ package common -import corev1 "k8s.io/api/core/v1" - -// SecretConfig contains a secret name and an included key. -// +kubebuilder:object:generate=true -type SecretConfig 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"` -} - -// ConfigMapConfig contains ConfigMap information used to store a configuration file. -// +kubebuilder:object:generate=true -type ConfigMapConfig struct { - // Name is the name of the ConfigMap. - Name string `json:"name,omitempty"` - - // Items maps a ConfigMap data `key` to a file `path` mount. - // +listType=map - // +listMapKey=key - // +optional - Items []corev1.KeyToPath `json:"items,omitempty"` -} +import ( + "k8s.io/apimachinery/pkg/util/intstr" +) -// CustomConfig allows one to put custom configurations for the agent. +// The deployment strategy to use to replace existing pods with new ones. +// +k8s:openapi-gen=true // +kubebuilder:object:generate=true -type CustomConfig struct { - // ConfigData corresponds to the configuration file content. - // +optional - ConfigData *string - // Enable to specify a reference to an already existing ConfigMap. - // +optional - ConfigMap *ConfigMapConfig +type UpdateStrategy struct { + // Type can be "RollingUpdate" or "OnDelete" for DaemonSets and "RollingUpdate" + // or "Recreate" for Deployments + Type string `json:"type,omitempty"` + // Configure the rolling update strategy of the Deployment or DaemonSet. + RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"` } -// KubeletConfig contains the kubelet configuration parameters. +// RollingUpdate describes how to replace existing pods with new ones. +// +k8s:openapi-gen=true // +kubebuilder:object:generate=true -type KubeletConfig struct { - // Host overrides the host used to contact kubelet API (default to status.hostIP). - // +optional - Host *corev1.EnvVarSource `json:"host,omitempty"` - - // TLSVerify toggles kubelet TLS verification. - // Default: true - // +optional - TLSVerify *bool `json:"tlsVerify,omitempty"` - - // HostCAPath is the host path where the kubelet CA certificate is stored. - // +optional - HostCAPath string `json:"hostCAPath,omitempty"` - - // AgentCAPath is the container path where the kubelet CA certificate is stored. - // Default: '/var/run/host-kubelet-ca.crt' if hostCAPath is set, else '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt' - // +optional - AgentCAPath string `json:"agentCAPath,omitempty"` +type RollingUpdate struct { + // The maximum number of pods that can be unavailable during the update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // Refer to the Kubernetes API documentation for additional details.. + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + + // MaxSurge behaves differently based on the Kubernetes resource. Refer to the + // Kubernetes API documentation for additional details. + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` } // AgentContainerName is the name of a container inside an Agent component diff --git a/api/datadoghq/common/v1/agent_types.go b/api/datadoghq/common/v1/agent_types.go deleted file mode 100644 index eca20676b..000000000 --- a/api/datadoghq/common/v1/agent_types.go +++ /dev/null @@ -1,154 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package common - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -// AgentImageConfig defines the agent container image config. -// +kubebuilder:object:generate=true -type AgentImageConfig struct { - // Define the image to use: - // Use "gcr.io/datadoghq/agent:latest" for Datadog Agent 7. - // Use "datadog/dogstatsd:latest" for standalone Datadog Agent DogStatsD 7. - // Use "gcr.io/datadoghq/cluster-agent:latest" for Datadog Cluster Agent. - // Use "agent" with the registry and tag configurations for /agent:. - // Use "cluster-agent" with the registry and tag configurations for /cluster-agent:. - // If the name is the full image string—`:` or `/:`, then `tag`, `jmxEnabled`, - // and `global.registry` values are ignored. - // Otherwise, image string is created by overriding default settings with supplied `name`, `tag`, and `jmxEnabled` values; - // image string is created using default registry unless `global.registry` is configured. - Name string `json:"name,omitempty"` - - // Define the image tag to use. - // To be used if the Name field does not correspond to a full image string. - // +optional - Tag string `json:"tag,omitempty"` - - // Define whether the Agent image should support JMX. - // To be used if the Name field does not correspond to a full image string. - // +optional - JMXEnabled bool `json:"jmxEnabled,omitempty"` - - // The Kubernetes pull policy: - // Use Always, Never, or IfNotPresent. - PullPolicy *corev1.PullPolicy `json:"pullPolicy,omitempty"` - - // It is possible to specify Docker registry credentials. - // See https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod - // +optional - PullSecrets *[]corev1.LocalObjectReference `json:"pullSecrets,omitempty"` -} - -// DaemonSetStatus defines the observed state of Agent running as DaemonSet. -// +k8s:openapi-gen=true -// +kubebuilder:object:generate=true -type DaemonSetStatus struct { - // Number of desired pods in the DaemonSet. - Desired int32 `json:"desired"` - - // Number of current pods in the DaemonSet. - Current int32 `json:"current"` - - // Number of ready pods in the DaemonSet. - Ready int32 `json:"ready"` - - // Number of available pods in the DaemonSet. - Available int32 `json:"available"` - - // Number of up to date pods in the DaemonSet. - UpToDate int32 `json:"upToDate"` - - // LastUpdate is the last time the status was updated. - LastUpdate *metav1.Time `json:"lastUpdate,omitempty"` - - // CurrentHash is the stored hash of the DaemonSet. - CurrentHash string `json:"currentHash,omitempty"` - - // Status corresponds to the DaemonSet computed status. - Status string `json:"status,omitempty"` - - // State corresponds to the DaemonSet state. - State string `json:"state,omitempty"` - - // DaemonsetName corresponds to the name of the created DaemonSet. - DaemonsetName string `json:"daemonsetName,omitempty"` -} - -// DeploymentStatus type representing a Deployment status. -// +k8s:openapi-gen=true -// +kubebuilder:object:generate=true -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 is the last time the status was updated. - LastUpdate *metav1.Time `json:"lastUpdate,omitempty"` - - // CurrentHash is the stored hash of the Deployment. - 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 Deployment computed status. - Status string `json:"status,omitempty"` - - // State corresponds to the Deployment state. - State string `json:"state,omitempty"` - - // DeploymentName corresponds to the name of the Deployment. - DeploymentName string `json:"deploymentName,omitempty"` -} - -// The deployment strategy to use to replace existing pods with new ones. -// +k8s:openapi-gen=true -// +kubebuilder:object:generate=true -type UpdateStrategy struct { - // Type can be "RollingUpdate" or "OnDelete" for DaemonSets and "RollingUpdate" - // or "Recreate" for Deployments - Type string `json:"type,omitempty"` - // Configure the rolling update strategy of the Deployment or DaemonSet. - RollingUpdate *RollingUpdate `json:"rollingUpdate,omitempty"` -} - -// RollingUpdate describes how to replace existing pods with new ones. -// +k8s:openapi-gen=true -// +kubebuilder:object:generate=true -type RollingUpdate struct { - // The maximum number of pods that can be unavailable during the update. - // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). - // Refer to the Kubernetes API documentation for additional details.. - MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` - - // MaxSurge behaves differently based on the Kubernetes resource. Refer to the - // Kubernetes API documentation for additional details. - MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` -} diff --git a/api/datadoghq/common/v1/customConfig.go b/api/datadoghq/common/v1/customConfig.go deleted file mode 100644 index cd85d5ea9..000000000 --- a/api/datadoghq/common/v1/customConfig.go +++ /dev/null @@ -1,22 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -package common - -import ( - "fmt" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// GetConfName get the name of the Configmap for a CustomConfigSpec -func GetConfName(owner metav1.Object, conf *CustomConfig, defaultName string) string { - // `configData` and `configMap` can't be set together. - // Return the default if the conf is not overridden or if it is just overridden with the ConfigData. - if conf != nil && conf.ConfigMap != nil { - return conf.ConfigMap.Name - } - return fmt.Sprintf("%s-%s", owner.GetName(), defaultName) -} diff --git a/api/datadoghq/common/v1/zz_generated.deepcopy.go b/api/datadoghq/common/v1/zz_generated.deepcopy.go deleted file mode 100644 index 62f6bcb22..000000000 --- a/api/datadoghq/common/v1/zz_generated.deepcopy.go +++ /dev/null @@ -1,214 +0,0 @@ -//go:build !ignore_autogenerated - -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -// Code generated by controller-gen. DO NOT EDIT. - -package common - -import ( - "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/util/intstr" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *AgentImageConfig) DeepCopyInto(out *AgentImageConfig) { - *out = *in - if in.PullPolicy != nil { - in, out := &in.PullPolicy, &out.PullPolicy - *out = new(v1.PullPolicy) - **out = **in - } - if in.PullSecrets != nil { - in, out := &in.PullSecrets, &out.PullSecrets - *out = new([]v1.LocalObjectReference) - if **in != nil { - in, out := *in, *out - *out = make([]v1.LocalObjectReference, len(*in)) - copy(*out, *in) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentImageConfig. -func (in *AgentImageConfig) DeepCopy() *AgentImageConfig { - if in == nil { - return nil - } - out := new(AgentImageConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ConfigMapConfig) DeepCopyInto(out *ConfigMapConfig) { - *out = *in - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]v1.KeyToPath, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapConfig. -func (in *ConfigMapConfig) DeepCopy() *ConfigMapConfig { - if in == nil { - return nil - } - out := new(ConfigMapConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *CustomConfig) DeepCopyInto(out *CustomConfig) { - *out = *in - if in.ConfigData != nil { - in, out := &in.ConfigData, &out.ConfigData - *out = new(string) - **out = **in - } - if in.ConfigMap != nil { - in, out := &in.ConfigMap, &out.ConfigMap - *out = new(ConfigMapConfig) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomConfig. -func (in *CustomConfig) DeepCopy() *CustomConfig { - if in == nil { - return nil - } - out := new(CustomConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { - *out = *in - if in.LastUpdate != nil { - in, out := &in.LastUpdate, &out.LastUpdate - *out = (*in).DeepCopy() - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus. -func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus { - if in == nil { - return nil - } - out := new(DaemonSetStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { - *out = *in - if in.LastUpdate != nil { - in, out := &in.LastUpdate, &out.LastUpdate - *out = (*in).DeepCopy() - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus. -func (in *DeploymentStatus) DeepCopy() *DeploymentStatus { - if in == nil { - return nil - } - out := new(DeploymentStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig) { - *out = *in - if in.Host != nil { - in, out := &in.Host, &out.Host - *out = new(v1.EnvVarSource) - (*in).DeepCopyInto(*out) - } - if in.TLSVerify != nil { - in, out := &in.TLSVerify, &out.TLSVerify - *out = new(bool) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig. -func (in *KubeletConfig) DeepCopy() *KubeletConfig { - if in == nil { - return nil - } - out := new(KubeletConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollingUpdate) DeepCopyInto(out *RollingUpdate) { - *out = *in - if in.MaxUnavailable != nil { - in, out := &in.MaxUnavailable, &out.MaxUnavailable - *out = new(intstr.IntOrString) - **out = **in - } - if in.MaxSurge != nil { - in, out := &in.MaxSurge, &out.MaxSurge - *out = new(intstr.IntOrString) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdate. -func (in *RollingUpdate) DeepCopy() *RollingUpdate { - if in == nil { - return nil - } - out := new(RollingUpdate) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *SecretConfig) DeepCopyInto(out *SecretConfig) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretConfig. -func (in *SecretConfig) DeepCopy() *SecretConfig { - if in == nil { - return nil - } - out := new(SecretConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy) { - *out = *in - if in.RollingUpdate != nil { - in, out := &in.RollingUpdate, &out.RollingUpdate - *out = new(RollingUpdate) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy. -func (in *UpdateStrategy) DeepCopy() *UpdateStrategy { - if in == nil { - return nil - } - out := new(UpdateStrategy) - in.DeepCopyInto(out) - return out -} diff --git a/api/datadoghq/common/zz_generated.deepcopy.go b/api/datadoghq/common/zz_generated.deepcopy.go new file mode 100644 index 000000000..f799a91d6 --- /dev/null +++ b/api/datadoghq/common/zz_generated.deepcopy.go @@ -0,0 +1,59 @@ +//go:build !ignore_autogenerated + +// Unless explicitly stated otherwise all files in this repository are licensed +// under the Apache License Version 2.0. +// This product includes software developed at Datadog (https://www.datadoghq.com/). +// Copyright 2016-present Datadog, Inc. + +// Code generated by controller-gen. DO NOT EDIT. + +package common + +import ( + "k8s.io/apimachinery/pkg/util/intstr" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdate) DeepCopyInto(out *RollingUpdate) { + *out = *in + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + *out = new(intstr.IntOrString) + **out = **in + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + *out = new(intstr.IntOrString) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdate. +func (in *RollingUpdate) DeepCopy() *RollingUpdate { + if in == nil { + return nil + } + out := new(RollingUpdate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UpdateStrategy) DeepCopyInto(out *UpdateStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(RollingUpdate) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UpdateStrategy. +func (in *UpdateStrategy) DeepCopy() *UpdateStrategy { + if in == nil { + return nil + } + out := new(UpdateStrategy) + in.DeepCopyInto(out) + return out +} diff --git a/api/datadoghq/v1alpha1/datadogagentprofile_types.go b/api/datadoghq/v1alpha1/datadogagentprofile_types.go index ea8da4225..5d07a45c8 100644 --- a/api/datadoghq/v1alpha1/datadogagentprofile_types.go +++ b/api/datadoghq/v1alpha1/datadogagentprofile_types.go @@ -6,7 +6,7 @@ package v1alpha1 import ( - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -42,7 +42,7 @@ type Override struct { // Configure the basic configurations for an Agent container // Valid Agent container names are: `agent` // +optional - Containers map[commonv1.AgentContainerName]*Container `json:"containers,omitempty"` + Containers map[common.AgentContainerName]*Container `json:"containers,omitempty"` // If specified, indicates the pod's priority. "system-node-critical" and // "system-cluster-critical" are two special keywords which indicate the @@ -55,7 +55,7 @@ type Override struct { // The deployment strategy to use to replace existing pods with new ones. // +optional - UpdateStrategy *commonv1.UpdateStrategy `json:"updateStrategy,omitempty"` + UpdateStrategy *common.UpdateStrategy `json:"updateStrategy,omitempty"` // Labels provide labels that are added to the Datadog Agent pods. // +optional diff --git a/api/datadoghq/v1alpha1/datadogagentprofile_validation_test.go b/api/datadoghq/v1alpha1/datadogagentprofile_validation_test.go index f3b7c152d..85cda252b 100644 --- a/api/datadoghq/v1alpha1/datadogagentprofile_validation_test.go +++ b/api/datadoghq/v1alpha1/datadogagentprofile_validation_test.go @@ -8,7 +8,7 @@ package v1alpha1 import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" @@ -30,8 +30,8 @@ func TestIsValidDatadogAgentProfile(t *testing.T) { Config: &Config{ Override: map[ComponentName]*Override{ NodeAgentComponentName: { - Containers: map[commonv1.AgentContainerName]*Container{ - commonv1.CoreAgentContainerName: { + Containers: map[common.AgentContainerName]*Container{ + common.CoreAgentContainerName: { Resources: &corev1.ResourceRequirements{ Limits: corev1.ResourceList{ corev1.ResourceCPU: *resource.NewQuantity(2, resource.DecimalSI), @@ -56,15 +56,15 @@ func TestIsValidDatadogAgentProfile(t *testing.T) { Config: &Config{ Override: map[ComponentName]*Override{ NodeAgentComponentName: { - Containers: map[commonv1.AgentContainerName]*Container{ - commonv1.CoreAgentContainerName: { + Containers: map[common.AgentContainerName]*Container{ + common.CoreAgentContainerName: { Resources: &corev1.ResourceRequirements{ Limits: corev1.ResourceList{ corev1.ResourceCPU: *resource.NewQuantity(2, resource.DecimalSI), }, }, }, - commonv1.TraceAgentContainerName: {}, + common.TraceAgentContainerName: {}, }, }, }, diff --git a/api/datadoghq/v1alpha1/zz_generated.deepcopy.go b/api/datadoghq/v1alpha1/zz_generated.deepcopy.go index f34863ae9..9c2ad0b55 100644 --- a/api/datadoghq/v1alpha1/zz_generated.deepcopy.go +++ b/api/datadoghq/v1alpha1/zz_generated.deepcopy.go @@ -11,7 +11,7 @@ package v1alpha1 import ( "github.com/DataDog/datadog-api-client-go/v2/api/datadogV1" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" @@ -1658,7 +1658,7 @@ func (in *Override) DeepCopyInto(out *Override) { *out = *in if in.Containers != nil { in, out := &in.Containers, &out.Containers - *out = make(map[commonv1.AgentContainerName]*Container, len(*in)) + *out = make(map[common.AgentContainerName]*Container, len(*in)) for key, val := range *in { var outVal *Container if val == nil { @@ -1679,7 +1679,7 @@ func (in *Override) DeepCopyInto(out *Override) { } if in.UpdateStrategy != nil { in, out := &in.UpdateStrategy, &out.UpdateStrategy - *out = new(commonv1.UpdateStrategy) + *out = new(common.UpdateStrategy) (*in).DeepCopyInto(*out) } if in.Labels != nil { diff --git a/api/datadoghq/v2alpha1/condition.go b/api/datadoghq/v2alpha1/condition.go index 67d99692b..e86322476 100644 --- a/api/datadoghq/v2alpha1/condition.go +++ b/api/datadoghq/v2alpha1/condition.go @@ -4,7 +4,6 @@ import ( "fmt" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -115,9 +114,9 @@ func getIndexForConditionType(status *DatadogAgentStatus, t string) int { } // UpdateDeploymentStatus updates a deployment's DeploymentStatus -func UpdateDeploymentStatus(dep *appsv1.Deployment, depStatus *commonv1.DeploymentStatus, updateTime *metav1.Time) *commonv1.DeploymentStatus { +func UpdateDeploymentStatus(dep *appsv1.Deployment, depStatus *DeploymentStatus, updateTime *metav1.Time) *DeploymentStatus { if depStatus == nil { - depStatus = &commonv1.DeploymentStatus{} + depStatus = &DeploymentStatus{} } if dep == nil { depStatus.State = string(DatadogAgentStateFailed) @@ -163,19 +162,19 @@ func UpdateDeploymentStatus(dep *appsv1.Deployment, depStatus *commonv1.Deployme } // UpdateDaemonSetStatus updates a daemonset's DaemonSetStatus -func UpdateDaemonSetStatus(ds *appsv1.DaemonSet, dsStatus []*commonv1.DaemonSetStatus, updateTime *metav1.Time) []*commonv1.DaemonSetStatus { +func UpdateDaemonSetStatus(ds *appsv1.DaemonSet, dsStatus []*DaemonSetStatus, updateTime *metav1.Time) []*DaemonSetStatus { if dsStatus == nil { - dsStatus = []*commonv1.DaemonSetStatus{} + dsStatus = []*DaemonSetStatus{} } if ds == nil { - dsStatus = append(dsStatus, &commonv1.DaemonSetStatus{ + dsStatus = append(dsStatus, &DaemonSetStatus{ State: string(DatadogAgentStateFailed), Status: string(DatadogAgentStateFailed), }) return dsStatus } - newStatus := commonv1.DaemonSetStatus{ + newStatus := DaemonSetStatus{ Desired: ds.Status.DesiredNumberScheduled, Current: ds.Status.CurrentNumberScheduled, Ready: ds.Status.NumberReady, @@ -220,12 +219,12 @@ func UpdateDaemonSetStatus(ds *appsv1.DaemonSet, dsStatus []*commonv1.DaemonSetS } // UpdateExtendedDaemonSetStatus updates an ExtendedDaemonSet's DaemonSetStatus -func UpdateExtendedDaemonSetStatus(eds *edsdatadoghqv1alpha1.ExtendedDaemonSet, dsStatus []*commonv1.DaemonSetStatus, updateTime *metav1.Time) []*commonv1.DaemonSetStatus { +func UpdateExtendedDaemonSetStatus(eds *edsdatadoghqv1alpha1.ExtendedDaemonSet, dsStatus []*DaemonSetStatus, updateTime *metav1.Time) []*DaemonSetStatus { if dsStatus == nil { - dsStatus = []*commonv1.DaemonSetStatus{} + dsStatus = []*DaemonSetStatus{} } - newStatus := commonv1.DaemonSetStatus{ + newStatus := DaemonSetStatus{ Desired: eds.Status.Desired, Current: eds.Status.Current, Ready: eds.Status.Ready, @@ -272,8 +271,8 @@ func UpdateExtendedDaemonSetStatus(eds *edsdatadoghqv1alpha1.ExtendedDaemonSet, } // UpdateCombinedDaemonSetStatus combines the status of multiple DaemonSetStatus -func UpdateCombinedDaemonSetStatus(dsStatus []*commonv1.DaemonSetStatus) *commonv1.DaemonSetStatus { - combinedStatus := commonv1.DaemonSetStatus{} +func UpdateCombinedDaemonSetStatus(dsStatus []*DaemonSetStatus) *DaemonSetStatus { + combinedStatus := DaemonSetStatus{} if len(dsStatus) == 0 { return &combinedStatus } diff --git a/api/datadoghq/v2alpha1/const.go b/api/datadoghq/v2alpha1/const.go index 3ad73997e..072d427e7 100644 --- a/api/datadoghq/v2alpha1/const.go +++ b/api/datadoghq/v2alpha1/const.go @@ -17,4 +17,36 @@ const ( ExtraConfdConfigMapName = "%s-extra-confd" // ExtraChecksdConfigMapName is the name of the ConfigMap storing Custom Checksd data ExtraChecksdConfigMapName = "%s-extra-checksd" + + // DefaultAgentHealthPort default agent health port + DefaultAgentHealthPort int32 = 5555 + + // Liveness probe default config + DefaultLivenessProbeInitialDelaySeconds int32 = 15 + DefaultLivenessProbePeriodSeconds int32 = 15 + DefaultLivenessProbeTimeoutSeconds int32 = 5 + DefaultLivenessProbeSuccessThreshold int32 = 1 + DefaultLivenessProbeFailureThreshold int32 = 6 + DefaultLivenessProbeHTTPPath = "/live" + + // Readiness probe default config + DefaultReadinessProbeInitialDelaySeconds int32 = 15 + DefaultReadinessProbePeriodSeconds int32 = 15 + DefaultReadinessProbeTimeoutSeconds int32 = 5 + DefaultReadinessProbeSuccessThreshold int32 = 1 + DefaultReadinessProbeFailureThreshold int32 = 6 + DefaultReadinessProbeHTTPPath = "/ready" + + // Startup probe default config + DefaultStartupProbeInitialDelaySeconds int32 = 15 + DefaultStartupProbePeriodSeconds int32 = 15 + DefaultStartupProbeTimeoutSeconds int32 = 5 + DefaultStartupProbeSuccessThreshold int32 = 1 + DefaultStartupProbeFailureThreshold int32 = 6 + DefaultStartupProbeHTTPPath = "/startup" + + // DefaultApmPort default apm port + DefaultApmPort = 8126 + // DefaultApmPortName default apm port name + DefaultApmPortName = "traceport" ) diff --git a/api/datadoghq/v2alpha1/datadogagent_default.go b/api/datadoghq/v2alpha1/datadogagent_default.go index 1dd41eb59..88ab0f9f7 100644 --- a/api/datadoghq/v2alpha1/datadogagent_default.go +++ b/api/datadoghq/v2alpha1/datadogagent_default.go @@ -7,7 +7,6 @@ package v2alpha1 import ( apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/pkg/defaulting" ) @@ -165,7 +164,7 @@ func defaultGlobalConfig(ddaSpec *DatadogAgentSpec) { if *ddaSpec.Global.FIPS.Enabled { if ddaSpec.Global.FIPS.Image == nil { - ddaSpec.Global.FIPS.Image = &commonv1.AgentImageConfig{} + ddaSpec.Global.FIPS.Image = &AgentImageConfig{} } if ddaSpec.Global.FIPS.Image.Name == "" { ddaSpec.Global.FIPS.Image.Name = defaultFIPSImageName diff --git a/api/datadoghq/v2alpha1/datadogagent_default_test.go b/api/datadoghq/v2alpha1/datadogagent_default_test.go index d1ec1759e..d1bbf6634 100644 --- a/api/datadoghq/v2alpha1/datadogagent_default_test.go +++ b/api/datadoghq/v2alpha1/datadogagent_default_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/google/go-cmp/cmp" @@ -114,7 +113,7 @@ func Test_defaultGlobal(t *testing.T) { Global: &GlobalConfig{ FIPS: &FIPSConfig{ Enabled: apiutils.NewBoolPointer(true), - Image: &common.AgentImageConfig{ + Image: &AgentImageConfig{ Name: defaultFIPSImageName, Tag: defaultFIPSImageTag, }, diff --git a/api/datadoghq/v2alpha1/datadogagent_types.go b/api/datadoghq/v2alpha1/datadogagent_types.go index fcf2b3c2d..c10a0ebd5 100644 --- a/api/datadoghq/v2alpha1/datadogagent_types.go +++ b/api/datadoghq/v2alpha1/datadogagent_types.go @@ -9,7 +9,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" ) // ComponentName is the name of a Deployment Component @@ -730,7 +730,7 @@ type AgentSidecarInjectionConfig struct { // Image overrides the default Agent image name and tag for the Agent sidecar. // +optional - Image *commonv1.AgentImageConfig `json:"image,omitempty"` + Image *AgentImageConfig `json:"image,omitempty"` // Selectors define the pod selector for sidecar injection. Only one rule is supported. // +optional @@ -892,6 +892,78 @@ type HelmCheckFeatureConfig struct { // Generic support structs +// SecretConfig contains a secret name and an included key. +// +kubebuilder:object:generate=true +type SecretConfig 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"` +} + +// ConfigMapConfig contains ConfigMap information used to store a configuration file. +// +kubebuilder:object:generate=true +type ConfigMapConfig struct { + // Name is the name of the ConfigMap. + Name string `json:"name,omitempty"` + + // Items maps a ConfigMap data `key` to a file `path` mount. + // +listType=map + // +listMapKey=key + // +optional + Items []corev1.KeyToPath `json:"items,omitempty"` +} + +// CustomConfig provides a place for custom configuration of the Agent or Cluster Agent, corresponding to datadog.yaml, +// system-probe.yaml, security-agent.yaml or datadog-cluster.yaml. +// The configuration can be provided in the ConfigData field as raw data, or referenced in a ConfigMap. +// Note: `ConfigData` and `ConfigMap` cannot be set together. +// +k8s:openapi-gen=true +type CustomConfig struct { + // ConfigData corresponds to the configuration file content. + ConfigData *string `json:"configData,omitempty"` + + // ConfigMap references an existing ConfigMap with the configuration file content. + ConfigMap *ConfigMapConfig `json:"configMap,omitempty"` +} + +// MultiCustomConfig provides a place for custom configuration of the Agent or Cluster Agent, corresponding to /confd/*.yaml. +// The configuration can be provided in the ConfigDataMap field as raw data, or referenced in a single ConfigMap. +// Note: `ConfigDataMap` and `ConfigMap` cannot be set together. +// +k8s:openapi-gen=true +type MultiCustomConfig struct { + // ConfigDataMap corresponds to the content of the configuration files. + // The key should be the filename the contents get mounted to; for instance check.py or check.yaml. + ConfigDataMap map[string]string `json:"configDataMap,omitempty"` + + // ConfigMap references an existing ConfigMap with the content of the configuration files. + ConfigMap *ConfigMapConfig `json:"configMap,omitempty"` +} + +// KubeletConfig contains the kubelet configuration parameters. +// +kubebuilder:object:generate=true +type KubeletConfig struct { + // Host overrides the host used to contact kubelet API (default to status.hostIP). + // +optional + Host *corev1.EnvVarSource `json:"host,omitempty"` + + // TLSVerify toggles kubelet TLS verification. + // Default: true + // +optional + TLSVerify *bool `json:"tlsVerify,omitempty"` + + // HostCAPath is the host path where the kubelet CA certificate is stored. + // +optional + HostCAPath string `json:"hostCAPath,omitempty"` + + // AgentCAPath is the container path where the kubelet CA certificate is stored. + // Default: '/var/run/host-kubelet-ca.crt' if hostCAPath is set, else '/var/run/secrets/kubernetes.io/serviceaccount/ca.crt' + // +optional + AgentCAPath string `json:"agentCAPath,omitempty"` +} + // HostPortConfig contains host port configuration. type HostPortConfig struct { // Enabled enables host port configuration @@ -935,30 +1007,121 @@ type OriginDetectionUnified struct { Enabled *bool `json:"enabled,omitempty"` } -// CustomConfig provides a place for custom configuration of the Agent or Cluster Agent, corresponding to datadog.yaml, -// system-probe.yaml, security-agent.yaml or datadog-cluster.yaml. -// The configuration can be provided in the ConfigData field as raw data, or referenced in a ConfigMap. -// Note: `ConfigData` and `ConfigMap` cannot be set together. +// AgentImageConfig defines the agent container image config. +// +kubebuilder:object:generate=true +type AgentImageConfig struct { + // Define the image to use: + // Use "gcr.io/datadoghq/agent:latest" for Datadog Agent 7. + // Use "datadog/dogstatsd:latest" for standalone Datadog Agent DogStatsD 7. + // Use "gcr.io/datadoghq/cluster-agent:latest" for Datadog Cluster Agent. + // Use "agent" with the registry and tag configurations for /agent:. + // Use "cluster-agent" with the registry and tag configurations for /cluster-agent:. + // If the name is the full image string—`:` or `/:`, then `tag`, `jmxEnabled`, + // and `global.registry` values are ignored. + // Otherwise, image string is created by overriding default settings with supplied `name`, `tag`, and `jmxEnabled` values; + // image string is created using default registry unless `global.registry` is configured. + Name string `json:"name,omitempty"` + + // Define the image tag to use. + // To be used if the Name field does not correspond to a full image string. + // +optional + Tag string `json:"tag,omitempty"` + + // Define whether the Agent image should support JMX. + // To be used if the Name field does not correspond to a full image string. + // +optional + JMXEnabled bool `json:"jmxEnabled,omitempty"` + + // The Kubernetes pull policy: + // Use Always, Never, or IfNotPresent. + PullPolicy *corev1.PullPolicy `json:"pullPolicy,omitempty"` + + // It is possible to specify Docker registry credentials. + // See https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod + // +optional + PullSecrets *[]corev1.LocalObjectReference `json:"pullSecrets,omitempty"` +} + +// DaemonSetStatus defines the observed state of Agent running as DaemonSet. // +k8s:openapi-gen=true -type CustomConfig struct { - // ConfigData corresponds to the configuration file content. - ConfigData *string `json:"configData,omitempty"` +// +kubebuilder:object:generate=true +type DaemonSetStatus struct { + // Number of desired pods in the DaemonSet. + Desired int32 `json:"desired"` - // ConfigMap references an existing ConfigMap with the configuration file content. - ConfigMap *commonv1.ConfigMapConfig `json:"configMap,omitempty"` + // Number of current pods in the DaemonSet. + Current int32 `json:"current"` + + // Number of ready pods in the DaemonSet. + Ready int32 `json:"ready"` + + // Number of available pods in the DaemonSet. + Available int32 `json:"available"` + + // Number of up to date pods in the DaemonSet. + UpToDate int32 `json:"upToDate"` + + // LastUpdate is the last time the status was updated. + LastUpdate *metav1.Time `json:"lastUpdate,omitempty"` + + // CurrentHash is the stored hash of the DaemonSet. + CurrentHash string `json:"currentHash,omitempty"` + + // Status corresponds to the DaemonSet computed status. + Status string `json:"status,omitempty"` + + // State corresponds to the DaemonSet state. + State string `json:"state,omitempty"` + + // DaemonsetName corresponds to the name of the created DaemonSet. + DaemonsetName string `json:"daemonsetName,omitempty"` } -// MultiCustomConfig provides a place for custom configuration of the Agent or Cluster Agent, corresponding to /confd/*.yaml. -// The configuration can be provided in the ConfigDataMap field as raw data, or referenced in a single ConfigMap. -// Note: `ConfigDataMap` and `ConfigMap` cannot be set together. +// DeploymentStatus type representing a Deployment status. // +k8s:openapi-gen=true -type MultiCustomConfig struct { - // ConfigDataMap corresponds to the content of the configuration files. - // The key should be the filename the contents get mounted to; for instance check.py or check.yaml. - ConfigDataMap map[string]string `json:"configDataMap,omitempty"` +// +kubebuilder:object:generate=true +type DeploymentStatus struct { + // Total number of non-terminated pods targeted by this Deployment (their labels match the selector). + // +optional + Replicas int32 `json:"replicas,omitempty"` - // ConfigMap references an existing ConfigMap with the content of the configuration files. - ConfigMap *commonv1.ConfigMapConfig `json:"configMap,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 is the last time the status was updated. + LastUpdate *metav1.Time `json:"lastUpdate,omitempty"` + + // CurrentHash is the stored hash of the Deployment. + 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 Deployment computed status. + Status string `json:"status,omitempty"` + + // State corresponds to the Deployment state. + State string `json:"state,omitempty"` + + // DeploymentName corresponds to the name of the Deployment. + DeploymentName string `json:"deploymentName,omitempty"` } // GlobalConfig is a set of parameters that are used to configure all the components of the Datadog Operator. @@ -970,7 +1133,7 @@ type GlobalConfig struct { ClusterAgentToken *string `json:"clusterAgentToken,omitempty"` // ClusterAgentTokenSecret is the secret containing the Cluster Agent token. - ClusterAgentTokenSecret *commonv1.SecretConfig `json:"clusterAgentTokenSecret,omitempty"` + ClusterAgentTokenSecret *SecretConfig `json:"clusterAgentTokenSecret,omitempty"` // ClusterName sets a unique cluster name for the deployment to easily scope monitoring data in the Datadog app. // +optional @@ -1050,7 +1213,7 @@ type GlobalConfig struct { // Kubelet contains the kubelet configuration parameters. // +optional - Kubelet *commonv1.KubeletConfig `json:"kubelet,omitempty"` + Kubelet *KubeletConfig `json:"kubelet,omitempty"` // Path to the docker runtime socket. // +optional @@ -1084,7 +1247,7 @@ type DatadogCredentials struct { // APISecret references an existing Secret which stores the API key instead of creating a new one. // If set, this parameter takes precedence over "APIKey". // +optional - APISecret *commonv1.SecretConfig `json:"apiSecret,omitempty"` + APISecret *SecretConfig `json:"apiSecret,omitempty"` // AppKey configures your Datadog application key. // If you are using features.externalMetricsServer.enabled = true, you must set @@ -1095,7 +1258,7 @@ type DatadogCredentials struct { // AppSecret references an existing Secret which stores the application key instead of creating a new one. // If set, this parameter takes precedence over "AppKey". // +optional - AppSecret *commonv1.SecretConfig `json:"appSecret,omitempty"` + AppSecret *SecretConfig `json:"appSecret,omitempty"` } // SecretBackendConfig provides configuration for the secret backend. @@ -1200,7 +1363,7 @@ type DatadogAgentComponentOverride struct { // The container image of the different components (Datadog Agent, Cluster Agent, Cluster Check Runner). // +optional - Image *commonv1.AgentImageConfig `json:"image,omitempty"` + Image *AgentImageConfig `json:"image,omitempty"` // Specify additional environment variables for all containers in this component // Priority is Container > Component. @@ -1232,7 +1395,7 @@ type DatadogAgentComponentOverride struct { // `security-agent`, `system-probe`, `trace-agent`, and `all`. // Configuration under `all` applies to all configured containers. // +optional - Containers map[commonv1.AgentContainerName]*DatadogAgentGenericContainer `json:"containers,omitempty"` + Containers map[common.AgentContainerName]*DatadogAgentGenericContainer `json:"containers,omitempty"` // Specify additional volumes in the different components (Datadog Agent, Cluster Agent, Cluster Check Runner). // +optional @@ -1277,7 +1440,7 @@ type DatadogAgentComponentOverride struct { // The deployment strategy to use to replace existing pods with new ones. // +optional - UpdateStrategy *commonv1.UpdateStrategy `json:"updateStrategy,omitempty"` + UpdateStrategy *common.UpdateStrategy `json:"updateStrategy,omitempty"` // Configure the component tolerations. // +optional @@ -1390,7 +1553,7 @@ type FIPSConfig struct { Enabled *bool `json:"enabled,omitempty"` // The container image of the FIPS sidecar. // +optional - Image *commonv1.AgentImageConfig `json:"image,omitempty"` + Image *AgentImageConfig `json:"image,omitempty"` // Set the local IP address. // Default: `127.0.0.1` // +optional @@ -1435,16 +1598,16 @@ type DatadogAgentStatus struct { // The actual state of the Agent as a daemonset or an extended daemonset. // +optional // +listType=atomic - AgentList []*commonv1.DaemonSetStatus `json:"agentList,omitempty"` + AgentList []*DaemonSetStatus `json:"agentList,omitempty"` // The combined actual state of all Agents as daemonsets or extended daemonsets. // +optional - Agent *commonv1.DaemonSetStatus `json:"agent,omitempty"` + Agent *DaemonSetStatus `json:"agent,omitempty"` // The actual state of the Cluster Agent as a deployment. // +optional - ClusterAgent *commonv1.DeploymentStatus `json:"clusterAgent,omitempty"` + ClusterAgent *DeploymentStatus `json:"clusterAgent,omitempty"` // The actual state of the Cluster Checks Runner as a deployment. // +optional - ClusterChecksRunner *commonv1.DeploymentStatus `json:"clusterChecksRunner,omitempty"` + ClusterChecksRunner *DeploymentStatus `json:"clusterChecksRunner,omitempty"` // RemoteConfigConfiguration stores the configuration received from RemoteConfig. // +optional RemoteConfigConfiguration *RemoteConfigConfiguration `json:"remoteConfigConfiguration,omitempty"` diff --git a/api/datadoghq/v2alpha1/test/builder.go b/api/datadoghq/v2alpha1/test/builder.go index 8fc819d02..f5a3ae9bc 100644 --- a/api/datadoghq/v2alpha1/test/builder.go +++ b/api/datadoghq/v2alpha1/test/builder.go @@ -6,7 +6,6 @@ package test import ( - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/api/utils" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -172,7 +171,7 @@ func (builder *DatadogAgentBuilder) initSidecarInjection() { builder.datadogAgent.Spec.Features.AdmissionController.AgentSidecarInjection = &v2alpha1.AgentSidecarInjectionConfig{} } if builder.datadogAgent.Spec.Features.AdmissionController.AgentSidecarInjection.Image == nil { - builder.datadogAgent.Spec.Features.AdmissionController.AgentSidecarInjection.Image = &common.AgentImageConfig{} + builder.datadogAgent.Spec.Features.AdmissionController.AgentSidecarInjection.Image = &v2alpha1.AgentImageConfig{} } } @@ -720,7 +719,7 @@ func (builder *DatadogAgentBuilder) WithHelmCheckValuesAsTags(valuesAsTags map[s // Global Kubelet func (builder *DatadogAgentBuilder) WithGlobalKubeletConfig(hostCAPath, agentCAPath string, tlsVerify bool) *DatadogAgentBuilder { - builder.datadogAgent.Spec.Global.Kubelet = &common.KubeletConfig{ + builder.datadogAgent.Spec.Global.Kubelet = &v2alpha1.KubeletConfig{ TLSVerify: apiutils.NewBoolPointer(tlsVerify), HostCAPath: hostCAPath, AgentCAPath: agentCAPath, diff --git a/api/datadoghq/v2alpha1/utils.go b/api/datadoghq/v2alpha1/utils.go index af742d19a..0bc95c561 100644 --- a/api/datadoghq/v2alpha1/utils.go +++ b/api/datadoghq/v2alpha1/utils.go @@ -9,9 +9,12 @@ import ( "fmt" "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/pkg/defaulting" + apiutils "github.com/DataDog/datadog-operator/api/utils" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/intstr" ) // GetConfName get the name of the Configmap for a CustomConfigSpec @@ -51,24 +54,6 @@ func GetClusterChecksRunnerServiceAccount(dda *DatadogAgent) string { return saDefault } -// ConvertCustomConfig use to convert a CustomConfig to a common.CustomConfig. -func ConvertCustomConfig(config *CustomConfig) *commonv1.CustomConfig { - if config == nil { - return nil - } - var configMap *commonv1.ConfigMapConfig - if config.ConfigMap != nil { - configMap = &commonv1.ConfigMapConfig{ - Name: config.ConfigMap.Name, - Items: config.ConfigMap.Items, - } - } - return &commonv1.CustomConfig{ - ConfigData: config.ConfigData, - ConfigMap: configMap, - } -} - // IsHostNetworkEnabled returns whether the pod should use the host's network namespace func IsHostNetworkEnabled(dda *DatadogAgent, component ComponentName) bool { if dda.Spec.Override != nil { @@ -107,3 +92,87 @@ func IsNetworkPolicyEnabled(dda *DatadogAgent) (bool, NetworkPolicyFlavor) { } return false, "" } + +// GetDefaultLivenessProbe creates a defaulted LivenessProbe +func GetDefaultLivenessProbe() *corev1.Probe { + livenessProbe := &corev1.Probe{ + InitialDelaySeconds: DefaultLivenessProbeInitialDelaySeconds, + PeriodSeconds: DefaultLivenessProbePeriodSeconds, + TimeoutSeconds: DefaultLivenessProbeTimeoutSeconds, + SuccessThreshold: DefaultLivenessProbeSuccessThreshold, + FailureThreshold: DefaultLivenessProbeFailureThreshold, + } + livenessProbe.HTTPGet = &corev1.HTTPGetAction{ + Path: DefaultLivenessProbeHTTPPath, + Port: intstr.IntOrString{ + IntVal: DefaultAgentHealthPort, + }, + } + return livenessProbe +} + +// GetDefaultReadinessProbe creates a defaulted ReadinessProbe +func GetDefaultReadinessProbe() *corev1.Probe { + readinessProbe := &corev1.Probe{ + InitialDelaySeconds: DefaultReadinessProbeInitialDelaySeconds, + PeriodSeconds: DefaultReadinessProbePeriodSeconds, + TimeoutSeconds: DefaultReadinessProbeTimeoutSeconds, + SuccessThreshold: DefaultReadinessProbeSuccessThreshold, + FailureThreshold: DefaultReadinessProbeFailureThreshold, + } + readinessProbe.HTTPGet = &corev1.HTTPGetAction{ + Path: DefaultReadinessProbeHTTPPath, + Port: intstr.IntOrString{ + IntVal: DefaultAgentHealthPort, + }, + } + return readinessProbe +} + +// GetDefaultStartupProbe creates a defaulted StartupProbe +func GetDefaultStartupProbe() *corev1.Probe { + startupProbe := &corev1.Probe{ + InitialDelaySeconds: DefaultStartupProbeInitialDelaySeconds, + PeriodSeconds: DefaultStartupProbePeriodSeconds, + TimeoutSeconds: DefaultStartupProbeTimeoutSeconds, + SuccessThreshold: DefaultStartupProbeSuccessThreshold, + FailureThreshold: DefaultStartupProbeFailureThreshold, + } + startupProbe.HTTPGet = &corev1.HTTPGetAction{ + Path: DefaultStartupProbeHTTPPath, + Port: intstr.IntOrString{ + IntVal: DefaultAgentHealthPort, + }, + } + return startupProbe +} + +// GetDefaultTraceAgentProbe creates a defaulted liveness/readiness probe for the Trace Agent +func GetDefaultTraceAgentProbe() *corev1.Probe { + probe := &corev1.Probe{ + InitialDelaySeconds: DefaultLivenessProbeInitialDelaySeconds, + PeriodSeconds: DefaultLivenessProbePeriodSeconds, + TimeoutSeconds: DefaultLivenessProbeTimeoutSeconds, + } + probe.TCPSocket = &corev1.TCPSocketAction{ + Port: intstr.IntOrString{ + IntVal: DefaultApmPort, + }, + } + return probe +} + +// GetImage builds the image string based on ImageConfig and the registry configuration. +func GetImage(imageSpec *AgentImageConfig, registry *string) string { + if defaulting.IsImageNameContainsTag(imageSpec.Name) { + return imageSpec.Name + } + + img := defaulting.NewImage(imageSpec.Name, imageSpec.Tag, imageSpec.JMXEnabled) + + if registry != nil && *registry != "" { + defaulting.WithRegistry(defaulting.ContainerRegistry(*registry))(img) + } + + return img.String() +} diff --git a/api/datadoghq/v2alpha1/utils_test.go b/api/datadoghq/v2alpha1/utils_test.go index aafffbe1b..be4951df8 100644 --- a/api/datadoghq/v2alpha1/utils_test.go +++ b/api/datadoghq/v2alpha1/utils_test.go @@ -7,69 +7,104 @@ package v2alpha1 import ( "fmt" - "reflect" "testing" + "github.com/stretchr/testify/assert" + "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" - corev1 "k8s.io/api/core/v1" + apiutils "github.com/DataDog/datadog-operator/api/utils" + "github.com/DataDog/datadog-operator/pkg/defaulting" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) -func TestConvertCustomConfig(t *testing.T) { - fakeData := "fake data" - cmName := "foo" - fileKey := "config.yaml" +func Test_GetImage(t *testing.T) { + emptyRegistry := "" tests := []struct { - name string - config *CustomConfig - want *commonv1.CustomConfig + name string + imageSpec *AgentImageConfig + registry *string + want string }{ { - name: "nil customConfig", - config: nil, - want: nil, + name: "backward compatible", + imageSpec: &AgentImageConfig{ + Name: defaulting.GetLatestAgentImage(), + }, + registry: nil, + want: defaulting.GetLatestAgentImage(), }, { - name: "simple configData", - config: &CustomConfig{ - ConfigData: &fakeData, + name: "nominal case", + imageSpec: &AgentImageConfig{ + Name: "agent", + Tag: "7", }, - want: &commonv1.CustomConfig{ - ConfigData: &fakeData, + registry: apiutils.NewStringPointer("public.ecr.aws/datadog"), + want: "public.ecr.aws/datadog/agent:7", + }, + { + name: "prioritize the full path", + imageSpec: &AgentImageConfig{ + Name: "docker.io/datadog/agent:7.28.1-rc.3", + Tag: "latest", }, + registry: apiutils.NewStringPointer("gcr.io/datadoghq"), + want: "docker.io/datadog/agent:7.28.1-rc.3", }, { - name: "simple configma[", - config: &CustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ - Name: cmName, - Items: []corev1.KeyToPath{ - { - Key: fileKey, - Path: fileKey, - }, - }, - }, + name: "default registry", + imageSpec: &AgentImageConfig{ + Name: "agent", + Tag: "latest", }, - want: &commonv1.CustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ - Name: cmName, - Items: []corev1.KeyToPath{ - { - Key: fileKey, - Path: fileKey, - }, - }, - }, + registry: &emptyRegistry, + want: "gcr.io/datadoghq/agent:latest", + }, + { + name: "add jmx", + imageSpec: &AgentImageConfig{ + Name: "agent", + Tag: defaulting.AgentLatestVersion, + JMXEnabled: true, + }, + registry: nil, + want: defaulting.GetLatestAgentImageJMX(), + }, + { + name: "cluster-agent", + imageSpec: &AgentImageConfig{ + Name: "cluster-agent", + Tag: defaulting.ClusterAgentLatestVersion, + JMXEnabled: false, }, + registry: nil, + want: defaulting.GetLatestClusterAgentImage(), + }, + { + name: "do not duplicate jmx", + imageSpec: &AgentImageConfig{ + Name: "agent", + Tag: "latest-jmx", + JMXEnabled: true, + }, + registry: nil, + want: "gcr.io/datadoghq/agent:latest-jmx", + }, + { + name: "do not add jmx", + imageSpec: &AgentImageConfig{ + Name: "agent", + Tag: "latest-jmx", + JMXEnabled: true, + }, + registry: nil, + want: "gcr.io/datadoghq/agent:latest-jmx", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := ConvertCustomConfig(tt.config); !reflect.DeepEqual(got, tt.want) { - t.Errorf("ConvertCustomConfig() = %v, want %v", got, tt.want) - } + assert.Equal(t, tt.want, GetImage(tt.imageSpec, tt.registry)) }) } } diff --git a/api/datadoghq/v2alpha1/zz_generated.deepcopy.go b/api/datadoghq/v2alpha1/zz_generated.deepcopy.go index 11322f795..b786b4192 100644 --- a/api/datadoghq/v2alpha1/zz_generated.deepcopy.go +++ b/api/datadoghq/v2alpha1/zz_generated.deepcopy.go @@ -10,7 +10,7 @@ package v2alpha1 import ( - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" @@ -201,6 +201,35 @@ func (in *AdmissionControllerFeatureConfig) DeepCopy() *AdmissionControllerFeatu return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgentImageConfig) DeepCopyInto(out *AgentImageConfig) { + *out = *in + if in.PullPolicy != nil { + in, out := &in.PullPolicy, &out.PullPolicy + *out = new(corev1.PullPolicy) + **out = **in + } + if in.PullSecrets != nil { + in, out := &in.PullSecrets, &out.PullSecrets + *out = new([]corev1.LocalObjectReference) + if **in != nil { + in, out := *in, *out + *out = make([]corev1.LocalObjectReference, len(*in)) + copy(*out, *in) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgentImageConfig. +func (in *AgentImageConfig) DeepCopy() *AgentImageConfig { + if in == nil { + return nil + } + out := new(AgentImageConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AgentSidecarInjectionConfig) DeepCopyInto(out *AgentSidecarInjectionConfig) { *out = *in @@ -226,7 +255,7 @@ func (in *AgentSidecarInjectionConfig) DeepCopyInto(out *AgentSidecarInjectionCo } if in.Image != nil { in, out := &in.Image, &out.Image - *out = new(commonv1.AgentImageConfig) + *out = new(AgentImageConfig) (*in).DeepCopyInto(*out) } if in.Selectors != nil { @@ -493,6 +522,28 @@ func (in *ClusterChecksFeatureConfig) DeepCopy() *ClusterChecksFeatureConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigMapConfig) DeepCopyInto(out *ConfigMapConfig) { + *out = *in + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]corev1.KeyToPath, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigMapConfig. +func (in *ConfigMapConfig) DeepCopy() *ConfigMapConfig { + if in == nil { + return nil + } + out := new(ConfigMapConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CustomConfig) DeepCopyInto(out *CustomConfig) { *out = *in @@ -503,7 +554,7 @@ func (in *CustomConfig) DeepCopyInto(out *CustomConfig) { } if in.ConfigMap != nil { in, out := &in.ConfigMap, &out.ConfigMap - *out = new(commonv1.ConfigMapConfig) + *out = new(ConfigMapConfig) (*in).DeepCopyInto(*out) } } @@ -518,6 +569,25 @@ func (in *CustomConfig) DeepCopy() *CustomConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { + *out = *in + if in.LastUpdate != nil { + in, out := &in.LastUpdate, &out.LastUpdate + *out = (*in).DeepCopy() + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus. +func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus { + if in == nil { + return nil + } + out := new(DaemonSetStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DatadogAgent) DeepCopyInto(out *DatadogAgent) { *out = *in @@ -570,7 +640,7 @@ func (in *DatadogAgentComponentOverride) DeepCopyInto(out *DatadogAgentComponent } if in.Image != nil { in, out := &in.Image, &out.Image - *out = new(commonv1.AgentImageConfig) + *out = new(AgentImageConfig) (*in).DeepCopyInto(*out) } if in.Env != nil { @@ -599,7 +669,7 @@ func (in *DatadogAgentComponentOverride) DeepCopyInto(out *DatadogAgentComponent } if in.Containers != nil { in, out := &in.Containers, &out.Containers - *out = make(map[commonv1.AgentContainerName]*DatadogAgentGenericContainer, len(*in)) + *out = make(map[common.AgentContainerName]*DatadogAgentGenericContainer, len(*in)) for key, val := range *in { var outVal *DatadogAgentGenericContainer if val == nil { @@ -654,7 +724,7 @@ func (in *DatadogAgentComponentOverride) DeepCopyInto(out *DatadogAgentComponent } if in.UpdateStrategy != nil { in, out := &in.UpdateStrategy, &out.UpdateStrategy - *out = new(commonv1.UpdateStrategy) + *out = new(common.UpdateStrategy) (*in).DeepCopyInto(*out) } if in.Tolerations != nil { @@ -874,28 +944,28 @@ func (in *DatadogAgentStatus) DeepCopyInto(out *DatadogAgentStatus) { } if in.AgentList != nil { in, out := &in.AgentList, &out.AgentList - *out = make([]*commonv1.DaemonSetStatus, len(*in)) + *out = make([]*DaemonSetStatus, len(*in)) for i := range *in { if (*in)[i] != nil { in, out := &(*in)[i], &(*out)[i] - *out = new(commonv1.DaemonSetStatus) + *out = new(DaemonSetStatus) (*in).DeepCopyInto(*out) } } } if in.Agent != nil { in, out := &in.Agent, &out.Agent - *out = new(commonv1.DaemonSetStatus) + *out = new(DaemonSetStatus) (*in).DeepCopyInto(*out) } if in.ClusterAgent != nil { in, out := &in.ClusterAgent, &out.ClusterAgent - *out = new(commonv1.DeploymentStatus) + *out = new(DeploymentStatus) (*in).DeepCopyInto(*out) } if in.ClusterChecksRunner != nil { in, out := &in.ClusterChecksRunner, &out.ClusterChecksRunner - *out = new(commonv1.DeploymentStatus) + *out = new(DeploymentStatus) (*in).DeepCopyInto(*out) } if in.RemoteConfigConfiguration != nil { @@ -925,7 +995,7 @@ func (in *DatadogCredentials) DeepCopyInto(out *DatadogCredentials) { } if in.APISecret != nil { in, out := &in.APISecret, &out.APISecret - *out = new(commonv1.SecretConfig) + *out = new(SecretConfig) **out = **in } if in.AppKey != nil { @@ -935,7 +1005,7 @@ func (in *DatadogCredentials) DeepCopyInto(out *DatadogCredentials) { } if in.AppSecret != nil { in, out := &in.AppSecret, &out.AppSecret - *out = new(commonv1.SecretConfig) + *out = new(SecretConfig) **out = **in } } @@ -1095,6 +1165,25 @@ func (in *DatadogFeatures) DeepCopy() *DatadogFeatures { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { + *out = *in + if in.LastUpdate != nil { + in, out := &in.LastUpdate, &out.LastUpdate + *out = (*in).DeepCopy() + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus. +func (in *DeploymentStatus) DeepCopy() *DeploymentStatus { + if in == nil { + return nil + } + out := new(DeploymentStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *DogstatsdFeatureConfig) DeepCopyInto(out *DogstatsdFeatureConfig) { *out = *in @@ -1287,7 +1376,7 @@ func (in *FIPSConfig) DeepCopyInto(out *FIPSConfig) { } if in.Image != nil { in, out := &in.Image, &out.Image - *out = new(commonv1.AgentImageConfig) + *out = new(AgentImageConfig) (*in).DeepCopyInto(*out) } if in.LocalAddress != nil { @@ -1347,7 +1436,7 @@ func (in *GlobalConfig) DeepCopyInto(out *GlobalConfig) { } if in.ClusterAgentTokenSecret != nil { in, out := &in.ClusterAgentTokenSecret, &out.ClusterAgentTokenSecret - *out = new(commonv1.SecretConfig) + *out = new(SecretConfig) **out = **in } if in.ClusterName != nil { @@ -1432,7 +1521,7 @@ func (in *GlobalConfig) DeepCopyInto(out *GlobalConfig) { } if in.Kubelet != nil { in, out := &in.Kubelet, &out.Kubelet - *out = new(commonv1.KubeletConfig) + *out = new(KubeletConfig) (*in).DeepCopyInto(*out) } if in.DockerSocketPath != nil { @@ -1554,6 +1643,31 @@ func (in *KubeStateMetricsCoreFeatureConfig) DeepCopy() *KubeStateMetricsCoreFea return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KubeletConfig) DeepCopyInto(out *KubeletConfig) { + *out = *in + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(corev1.EnvVarSource) + (*in).DeepCopyInto(*out) + } + if in.TLSVerify != nil { + in, out := &in.TLSVerify, &out.TLSVerify + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfig. +func (in *KubeletConfig) DeepCopy() *KubeletConfig { + if in == nil { + return nil + } + out := new(KubeletConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LanguageDetectionConfig) DeepCopyInto(out *LanguageDetectionConfig) { *out = *in @@ -1716,7 +1830,7 @@ func (in *MultiCustomConfig) DeepCopyInto(out *MultiCustomConfig) { } if in.ConfigMap != nil { in, out := &in.ConfigMap, &out.ConfigMap - *out = new(commonv1.ConfigMapConfig) + *out = new(ConfigMapConfig) (*in).DeepCopyInto(*out) } } @@ -2232,6 +2346,21 @@ func (in *SecretBackendConfig) DeepCopy() *SecretBackendConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecretConfig) DeepCopyInto(out *SecretConfig) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretConfig. +func (in *SecretConfig) DeepCopy() *SecretConfig { + if in == nil { + return nil + } + out := new(SecretConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Selector) DeepCopyInto(out *Selector) { *out = *in diff --git a/api/datadoghq/v2alpha1/zz_generated.openapi.go b/api/datadoghq/v2alpha1/zz_generated.openapi.go index f0bbe5ecd..d6c6a295e 100644 --- a/api/datadoghq/v2alpha1/zz_generated.openapi.go +++ b/api/datadoghq/v2alpha1/zz_generated.openapi.go @@ -21,11 +21,13 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA return map[string]common.OpenAPIDefinition{ "./api/datadoghq/v2alpha1.CSPMHostBenchmarksConfig": schema__api_datadoghq_v2alpha1_CSPMHostBenchmarksConfig(ref), "./api/datadoghq/v2alpha1.CustomConfig": schema__api_datadoghq_v2alpha1_CustomConfig(ref), + "./api/datadoghq/v2alpha1.DaemonSetStatus": schema__api_datadoghq_v2alpha1_DaemonSetStatus(ref), "./api/datadoghq/v2alpha1.DatadogAgent": schema__api_datadoghq_v2alpha1_DatadogAgent(ref), "./api/datadoghq/v2alpha1.DatadogAgentGenericContainer": schema__api_datadoghq_v2alpha1_DatadogAgentGenericContainer(ref), "./api/datadoghq/v2alpha1.DatadogAgentStatus": schema__api_datadoghq_v2alpha1_DatadogAgentStatus(ref), "./api/datadoghq/v2alpha1.DatadogCredentials": schema__api_datadoghq_v2alpha1_DatadogCredentials(ref), "./api/datadoghq/v2alpha1.DatadogFeatures": schema__api_datadoghq_v2alpha1_DatadogFeatures(ref), + "./api/datadoghq/v2alpha1.DeploymentStatus": schema__api_datadoghq_v2alpha1_DeploymentStatus(ref), "./api/datadoghq/v2alpha1.DogstatsdFeatureConfig": schema__api_datadoghq_v2alpha1_DogstatsdFeatureConfig(ref), "./api/datadoghq/v2alpha1.EventCollectionFeatureConfig": schema__api_datadoghq_v2alpha1_EventCollectionFeatureConfig(ref), "./api/datadoghq/v2alpha1.FIPSConfig": schema__api_datadoghq_v2alpha1_FIPSConfig(ref), @@ -84,14 +86,104 @@ func schema__api_datadoghq_v2alpha1_CustomConfig(ref common.ReferenceCallback) c "configMap": { SchemaProps: spec.SchemaProps{ Description: "ConfigMap references an existing ConfigMap with the configuration file content.", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.ConfigMapConfig"), + Ref: ref("./api/datadoghq/v2alpha1.ConfigMapConfig"), }, }, }, }, }, Dependencies: []string{ - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1.ConfigMapConfig"}, + "./api/datadoghq/v2alpha1.ConfigMapConfig"}, + } +} + +func schema__api_datadoghq_v2alpha1_DaemonSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DaemonSetStatus defines the observed state of Agent running as DaemonSet.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "desired": { + SchemaProps: spec.SchemaProps{ + Description: "Number of desired pods in the DaemonSet.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "current": { + SchemaProps: spec.SchemaProps{ + Description: "Number of current pods in the DaemonSet.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "ready": { + SchemaProps: spec.SchemaProps{ + Description: "Number of ready pods in the DaemonSet.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "available": { + SchemaProps: spec.SchemaProps{ + Description: "Number of available pods in the DaemonSet.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "upToDate": { + SchemaProps: spec.SchemaProps{ + Description: "Number of up to date pods in the DaemonSet.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "lastUpdate": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdate is the last time the status was updated.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "currentHash": { + SchemaProps: spec.SchemaProps{ + Description: "CurrentHash is the stored hash of the DaemonSet.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status corresponds to the DaemonSet computed status.", + Type: []string{"string"}, + Format: "", + }, + }, + "state": { + SchemaProps: spec.SchemaProps{ + Description: "State corresponds to the DaemonSet state.", + Type: []string{"string"}, + Format: "", + }, + }, + "daemonsetName": { + SchemaProps: spec.SchemaProps{ + Description: "DaemonsetName corresponds to the name of the created DaemonSet.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"desired", "current", "ready", "available", "upToDate"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } @@ -341,7 +433,7 @@ func schema__api_datadoghq_v2alpha1_DatadogAgentStatus(ref common.ReferenceCallb Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.DaemonSetStatus"), + Ref: ref("./api/datadoghq/v2alpha1.DaemonSetStatus"), }, }, }, @@ -350,19 +442,19 @@ func schema__api_datadoghq_v2alpha1_DatadogAgentStatus(ref common.ReferenceCallb "agent": { SchemaProps: spec.SchemaProps{ Description: "The combined actual state of all Agents as daemonsets or extended daemonsets.", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.DaemonSetStatus"), + Ref: ref("./api/datadoghq/v2alpha1.DaemonSetStatus"), }, }, "clusterAgent": { SchemaProps: spec.SchemaProps{ Description: "The actual state of the Cluster Agent as a deployment.", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.DeploymentStatus"), + Ref: ref("./api/datadoghq/v2alpha1.DeploymentStatus"), }, }, "clusterChecksRunner": { SchemaProps: spec.SchemaProps{ Description: "The actual state of the Cluster Checks Runner as a deployment.", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.DeploymentStatus"), + Ref: ref("./api/datadoghq/v2alpha1.DeploymentStatus"), }, }, "remoteConfigConfiguration": { @@ -375,7 +467,7 @@ func schema__api_datadoghq_v2alpha1_DatadogAgentStatus(ref common.ReferenceCallb }, }, Dependencies: []string{ - "./api/datadoghq/v2alpha1.RemoteConfigConfiguration", "github.com/DataDog/datadog-operator/api/datadoghq/common/v1.DaemonSetStatus", "github.com/DataDog/datadog-operator/api/datadoghq/common/v1.DeploymentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "./api/datadoghq/v2alpha1.DaemonSetStatus", "./api/datadoghq/v2alpha1.DeploymentStatus", "./api/datadoghq/v2alpha1.RemoteConfigConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } @@ -396,7 +488,7 @@ func schema__api_datadoghq_v2alpha1_DatadogCredentials(ref common.ReferenceCallb "apiSecret": { SchemaProps: spec.SchemaProps{ Description: "APISecret references an existing Secret which stores the API key instead of creating a new one. If set, this parameter takes precedence over \"APIKey\".", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.SecretConfig"), + Ref: ref("./api/datadoghq/v2alpha1.SecretConfig"), }, }, "appKey": { @@ -409,14 +501,14 @@ func schema__api_datadoghq_v2alpha1_DatadogCredentials(ref common.ReferenceCallb "appSecret": { SchemaProps: spec.SchemaProps{ Description: "AppSecret references an existing Secret which stores the application key instead of creating a new one. If set, this parameter takes precedence over \"AppKey\".", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.SecretConfig"), + Ref: ref("./api/datadoghq/v2alpha1.SecretConfig"), }, }, }, }, }, Dependencies: []string{ - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1.SecretConfig"}, + "./api/datadoghq/v2alpha1.SecretConfig"}, } } @@ -591,6 +683,97 @@ func schema__api_datadoghq_v2alpha1_DatadogFeatures(ref common.ReferenceCallback } } +func schema__api_datadoghq_v2alpha1_DeploymentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DeploymentStatus type representing a Deployment status.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "replicas": { + SchemaProps: spec.SchemaProps{ + Description: "Total number of non-terminated pods targeted by this Deployment (their labels match the selector).", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "updatedReplicas": { + SchemaProps: spec.SchemaProps{ + Description: "Total number of non-terminated pods targeted by this Deployment that have the desired template spec.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "readyReplicas": { + SchemaProps: spec.SchemaProps{ + Description: "Total number of ready pods targeted by this Deployment.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "availableReplicas": { + SchemaProps: spec.SchemaProps{ + Description: "Total number of available pods (ready for at least minReadySeconds) targeted by this Deployment.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "unavailableReplicas": { + SchemaProps: spec.SchemaProps{ + Description: "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.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "lastUpdate": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdate is the last time the status was updated.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "currentHash": { + SchemaProps: spec.SchemaProps{ + Description: "CurrentHash is the stored hash of the Deployment.", + Type: []string{"string"}, + Format: "", + }, + }, + "generatedToken": { + SchemaProps: spec.SchemaProps{ + Description: "GeneratedToken corresponds to the generated token if any token was provided in the Credential configuration when ClusterAgent is enabled.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status corresponds to the Deployment computed status.", + Type: []string{"string"}, + Format: "", + }, + }, + "state": { + SchemaProps: spec.SchemaProps{ + Description: "State corresponds to the Deployment state.", + Type: []string{"string"}, + Format: "", + }, + }, + "deploymentName": { + SchemaProps: spec.SchemaProps{ + Description: "DeploymentName corresponds to the name of the Deployment.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + func schema__api_datadoghq_v2alpha1_DogstatsdFeatureConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -703,7 +886,7 @@ func schema__api_datadoghq_v2alpha1_FIPSConfig(ref common.ReferenceCallback) com "image": { SchemaProps: spec.SchemaProps{ Description: "The container image of the FIPS sidecar.", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.AgentImageConfig"), + Ref: ref("./api/datadoghq/v2alpha1.AgentImageConfig"), }, }, "localAddress": { @@ -750,7 +933,7 @@ func schema__api_datadoghq_v2alpha1_FIPSConfig(ref common.ReferenceCallback) com }, }, Dependencies: []string{ - "./api/datadoghq/v2alpha1.CustomConfig", "github.com/DataDog/datadog-operator/api/datadoghq/common/v1.AgentImageConfig", "k8s.io/api/core/v1.ResourceRequirements"}, + "./api/datadoghq/v2alpha1.AgentImageConfig", "./api/datadoghq/v2alpha1.CustomConfig", "k8s.io/api/core/v1.ResourceRequirements"}, } } @@ -878,14 +1061,14 @@ func schema__api_datadoghq_v2alpha1_MultiCustomConfig(ref common.ReferenceCallba "configMap": { SchemaProps: spec.SchemaProps{ Description: "ConfigMap references an existing ConfigMap with the content of the configuration files.", - Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/common/v1.ConfigMapConfig"), + Ref: ref("./api/datadoghq/v2alpha1.ConfigMapConfig"), }, }, }, }, }, Dependencies: []string{ - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1.ConfigMapConfig"}, + "./api/datadoghq/v2alpha1.ConfigMapConfig"}, } } diff --git a/cmd/check-operator/upgrade/upgrade.go b/cmd/check-operator/upgrade/upgrade.go index a5e7259fa..829e7036e 100644 --- a/cmd/check-operator/upgrade/upgrade.go +++ b/cmd/check-operator/upgrade/upgrade.go @@ -18,7 +18,6 @@ import ( "k8s.io/cli-runtime/pkg/genericclioptions" "sigs.k8s.io/controller-runtime/pkg/client" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/pkg/plugin/common" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -217,7 +216,7 @@ func (o *Options) Run() error { return wait.Poll(o.checkPeriod, o.checkTimeout, checkFunc) } -func (o *Options) isAgentDone(status *commonv1.DaemonSetStatus) bool { +func (o *Options) isAgentDone(status *v2alpha1.DaemonSetStatus) bool { if status == nil { return true } @@ -231,7 +230,7 @@ func (o *Options) isAgentDone(status *commonv1.DaemonSetStatus) bool { return false } -func (o *Options) isDeploymentDone(status *commonv1.DeploymentStatus, minUpToDate int32, component string) bool { +func (o *Options) isDeploymentDone(status *v2alpha1.DeploymentStatus, minUpToDate int32, component string) bool { if status == nil { return true } diff --git a/internal/controller/datadogagent/common/utils.go b/internal/controller/datadogagent/common/utils.go index 3224c5eac..1b6f352bd 100644 --- a/internal/controller/datadogagent/common/utils.go +++ b/internal/controller/datadogagent/common/utils.go @@ -10,7 +10,7 @@ import ( "strings" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object" "github.com/DataDog/datadog-operator/pkg/kubernetes" "github.com/DataDog/datadog-operator/pkg/utils" @@ -80,7 +80,7 @@ func GetDefaultSeccompConfigMapName(dda metav1.Object) string { } // GetAgentVersionFromImage returns the Agent version based on the AgentImageConfig -func GetAgentVersionFromImage(imageConfig commonv1.AgentImageConfig) string { +func GetAgentVersionFromImage(imageConfig v2alpha1.AgentImageConfig) string { version := "" if imageConfig.Name != "" { version = strings.TrimSuffix(utils.GetTagFromImageName(imageConfig.Name), "-jmx") diff --git a/internal/controller/datadogagent/component/agent/default.go b/internal/controller/datadogagent/component/agent/default.go index fa9bf91b5..7c7058dde 100644 --- a/internal/controller/datadogagent/component/agent/default.go +++ b/internal/controller/datadogagent/component/agent/default.go @@ -12,7 +12,6 @@ import ( edsv1alpha1 "github.com/DataDog/extendeddaemonset/api/v1alpha1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -105,13 +104,13 @@ func agentImage() string { return fmt.Sprintf("%s/%s:%s", apicommon.DefaultImageRegistry, apicommon.DefaultAgentImageName, defaulting.AgentLatestVersion) } -func initContainers(dda metav1.Object, requiredContainers []commonv1.AgentContainerName) []corev1.Container { +func initContainers(dda metav1.Object, requiredContainers []apicommon.AgentContainerName) []corev1.Container { initContainers := []corev1.Container{ initVolumeContainer(), initConfigContainer(dda), } for _, containerName := range requiredContainers { - if containerName == commonv1.SystemProbeContainerName { + if containerName == apicommon.SystemProbeContainerName { initContainers = append(initContainers, initSeccompSetupContainer()) } } @@ -121,12 +120,12 @@ func initContainers(dda metav1.Object, requiredContainers []commonv1.AgentContai func agentSingleContainer(dda metav1.Object) []corev1.Container { agentSingleContainer := corev1.Container{ - Name: string(commonv1.UnprivilegedSingleAgentContainerName), + Name: string(apicommon.UnprivilegedSingleAgentContainerName), Image: agentImage(), Env: envVarsForCoreAgent(dda), VolumeMounts: volumeMountsForCoreAgent(), - LivenessProbe: apicommon.GetDefaultLivenessProbe(), - ReadinessProbe: apicommon.GetDefaultReadinessProbe(), + LivenessProbe: v2alpha1.GetDefaultLivenessProbe(), + ReadinessProbe: v2alpha1.GetDefaultReadinessProbe(), } containers := []corev1.Container{ @@ -136,22 +135,22 @@ func agentSingleContainer(dda metav1.Object) []corev1.Container { return containers } -func agentOptimizedContainers(dda metav1.Object, requiredContainers []commonv1.AgentContainerName) []corev1.Container { +func agentOptimizedContainers(dda metav1.Object, requiredContainers []apicommon.AgentContainerName) []corev1.Container { containers := []corev1.Container{coreAgentContainer(dda)} for _, containerName := range requiredContainers { switch containerName { - case commonv1.CoreAgentContainerName: + case apicommon.CoreAgentContainerName: // Nothing to do. It's always required. - case commonv1.TraceAgentContainerName: + case apicommon.TraceAgentContainerName: containers = append(containers, traceAgentContainer(dda)) - case commonv1.ProcessAgentContainerName: + case apicommon.ProcessAgentContainerName: containers = append(containers, processAgentContainer(dda)) - case commonv1.SecurityAgentContainerName: + case apicommon.SecurityAgentContainerName: containers = append(containers, securityAgentContainer(dda)) - case commonv1.SystemProbeContainerName: + case apicommon.SystemProbeContainerName: containers = append(containers, systemProbeContainer(dda)) - case commonv1.OtelAgent: + case apicommon.OtelAgent: containers = append(containers, otelAgentContainer(dda)) } } @@ -161,20 +160,20 @@ func agentOptimizedContainers(dda metav1.Object, requiredContainers []commonv1.A func coreAgentContainer(dda metav1.Object) corev1.Container { return corev1.Container{ - Name: string(commonv1.CoreAgentContainerName), + Name: string(apicommon.CoreAgentContainerName), Image: agentImage(), Command: []string{"agent", "run"}, Env: envVarsForCoreAgent(dda), VolumeMounts: volumeMountsForCoreAgent(), - LivenessProbe: apicommon.GetDefaultLivenessProbe(), - ReadinessProbe: apicommon.GetDefaultReadinessProbe(), - StartupProbe: apicommon.GetDefaultStartupProbe(), + LivenessProbe: v2alpha1.GetDefaultLivenessProbe(), + ReadinessProbe: v2alpha1.GetDefaultReadinessProbe(), + StartupProbe: v2alpha1.GetDefaultStartupProbe(), } } func traceAgentContainer(dda metav1.Object) corev1.Container { return corev1.Container{ - Name: string(commonv1.TraceAgentContainerName), + Name: string(apicommon.TraceAgentContainerName), Image: agentImage(), Command: []string{ "trace-agent", @@ -182,13 +181,13 @@ func traceAgentContainer(dda metav1.Object) corev1.Container { }, Env: envVarsForTraceAgent(dda), VolumeMounts: volumeMountsForTraceAgent(), - LivenessProbe: apicommon.GetDefaultTraceAgentProbe(), + LivenessProbe: v2alpha1.GetDefaultTraceAgentProbe(), } } func processAgentContainer(dda metav1.Object) corev1.Container { return corev1.Container{ - Name: string(commonv1.ProcessAgentContainerName), + Name: string(apicommon.ProcessAgentContainerName), Image: agentImage(), Command: []string{ "process-agent", fmt.Sprintf("--config=%s", apicommon.AgentCustomConfigVolumePath), @@ -201,7 +200,7 @@ func processAgentContainer(dda metav1.Object) corev1.Container { func otelAgentContainer(dda metav1.Object) corev1.Container { return corev1.Container{ - Name: string(commonv1.OtelAgent), + Name: string(apicommon.OtelAgent), Image: agentImage(), Command: []string{ "/otel-agent", @@ -228,7 +227,7 @@ func otelAgentContainer(dda metav1.Object) corev1.Container { func securityAgentContainer(dda metav1.Object) corev1.Container { return corev1.Container{ - Name: string(commonv1.SecurityAgentContainerName), + Name: string(apicommon.SecurityAgentContainerName), Image: agentImage(), Command: []string{ "security-agent", @@ -241,7 +240,7 @@ func securityAgentContainer(dda metav1.Object) corev1.Container { func systemProbeContainer(dda metav1.Object) corev1.Container { return corev1.Container{ - Name: string(commonv1.SystemProbeContainerName), + Name: string(apicommon.SystemProbeContainerName), Image: agentImage(), Command: []string{ "system-probe", @@ -332,7 +331,7 @@ func envVarsForCoreAgent(dda metav1.Object) []corev1.EnvVar { envs := []corev1.EnvVar{ { Name: apicommon.DDHealthPort, - Value: strconv.Itoa(int(apicommon.DefaultAgentHealthPort)), + Value: strconv.Itoa(int(v2alpha1.DefaultAgentHealthPort)), }, { Name: apicommon.DDLeaderElection, @@ -399,7 +398,7 @@ func volumeMountsForInitConfig() []corev1.VolumeMount { } } -func volumesForAgent(dda metav1.Object, requiredContainers []commonv1.AgentContainerName) []corev1.Volume { +func volumesForAgent(dda metav1.Object, requiredContainers []apicommon.AgentContainerName) []corev1.Volume { volumes := []corev1.Volume{ common.GetVolumeForLogs(), common.GetVolumeForAuth(), @@ -414,7 +413,7 @@ func volumesForAgent(dda metav1.Object, requiredContainers []commonv1.AgentConta } for _, containerName := range requiredContainers { - if containerName == commonv1.SystemProbeContainerName { + if containerName == apicommon.SystemProbeContainerName { sysProbeVolumes := []corev1.Volume{ common.GetVolumeForSecurity(dda), common.GetVolumeForSeccomp(), diff --git a/internal/controller/datadogagent/component/clusteragent/default.go b/internal/controller/datadogagent/component/clusteragent/default.go index 9897d2d6d..c0d6ffa85 100644 --- a/internal/controller/datadogagent/component/clusteragent/default.go +++ b/internal/controller/datadogagent/component/clusteragent/default.go @@ -15,7 +15,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -110,7 +110,7 @@ func defaultPodSpec(dda metav1.Object, volumes []corev1.Volume, volumeMounts []c ServiceAccountName: getDefaultServiceAccountName(dda), Containers: []corev1.Container{ { - Name: string(apicommonv1.ClusterAgentContainerName), + Name: string(apicommon.ClusterAgentContainerName), Image: fmt.Sprintf("%s/%s:%s", apicommon.DefaultImageRegistry, apicommon.DefaultClusterAgentImageName, defaulting.ClusterAgentLatestVersion), Ports: []corev1.ContainerPort{ { @@ -121,9 +121,9 @@ func defaultPodSpec(dda metav1.Object, volumes []corev1.Volume, volumeMounts []c }, Env: envVars, VolumeMounts: volumeMounts, - LivenessProbe: apicommon.GetDefaultLivenessProbe(), - ReadinessProbe: apicommon.GetDefaultReadinessProbe(), - StartupProbe: apicommon.GetDefaultStartupProbe(), + LivenessProbe: v2alpha1.GetDefaultLivenessProbe(), + ReadinessProbe: v2alpha1.GetDefaultReadinessProbe(), + StartupProbe: v2alpha1.GetDefaultStartupProbe(), Command: nil, Args: nil, SecurityContext: &corev1.SecurityContext{ @@ -167,7 +167,7 @@ func defaultEnvVars(dda metav1.Object) []corev1.EnvVar { }, { Name: apicommon.DDHealthPort, - Value: strconv.Itoa(int(apicommon.DefaultAgentHealthPort)), + Value: strconv.Itoa(int(v2alpha1.DefaultAgentHealthPort)), }, { Name: apicommon.DDAPMInstrumentationInstallId, diff --git a/internal/controller/datadogagent/component/clusterchecksrunner/default.go b/internal/controller/datadogagent/component/clusterchecksrunner/default.go index e34c625c0..bd9333706 100644 --- a/internal/controller/datadogagent/component/clusterchecksrunner/default.go +++ b/internal/controller/datadogagent/component/clusterchecksrunner/default.go @@ -14,7 +14,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" componentdca "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/clusteragent" @@ -107,7 +107,7 @@ func defaultPodSpec(dda metav1.Object, volumes []corev1.Volume, volumeMounts []c }, Containers: []corev1.Container{ { - Name: string(apicommonv1.ClusterChecksRunnersContainerName), + Name: string(apicommon.ClusterChecksRunnersContainerName), Image: clusterChecksRunnerImage(), Env: envVars, VolumeMounts: volumeMounts, @@ -115,9 +115,9 @@ func defaultPodSpec(dda metav1.Object, volumes []corev1.Volume, volumeMounts []c Args: []string{ "agent run", }, - LivenessProbe: apicommon.GetDefaultLivenessProbe(), - ReadinessProbe: apicommon.GetDefaultReadinessProbe(), - StartupProbe: apicommon.GetDefaultStartupProbe(), + LivenessProbe: v2alpha1.GetDefaultLivenessProbe(), + ReadinessProbe: v2alpha1.GetDefaultReadinessProbe(), + StartupProbe: v2alpha1.GetDefaultStartupProbe(), SecurityContext: &corev1.SecurityContext{ ReadOnlyRootFilesystem: apiutils.NewBoolPointer(true), AllowPrivilegeEscalation: apiutils.NewBoolPointer(false), @@ -146,7 +146,7 @@ func defaultEnvVars(dda metav1.Object) []corev1.EnvVar { }, { Name: apicommon.DDHealthPort, - Value: strconv.Itoa(int(apicommon.DefaultAgentHealthPort)), + Value: strconv.Itoa(int(v2alpha1.DefaultAgentHealthPort)), }, { Name: apicommon.KubernetesEnvVar, diff --git a/internal/controller/datadogagent/controller_reconcile_agent.go b/internal/controller/datadogagent/controller_reconcile_agent.go index 317a6c021..7975ab470 100644 --- a/internal/controller/datadogagent/controller_reconcile_agent.go +++ b/internal/controller/datadogagent/controller_reconcile_agent.go @@ -10,7 +10,6 @@ import ( "time" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" datadoghqv2alpha1 "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -251,7 +250,7 @@ func removeStaleStatus(ddaStatus *datadoghqv2alpha1.DatadogAgentStatus, name str if ddaStatus != nil { for i, dsStatus := range ddaStatus.AgentList { if dsStatus.DaemonsetName == name { - newStatus := make([]*common.DaemonSetStatus, 0, len(ddaStatus.AgentList)-1) + newStatus := make([]*datadoghqv2alpha1.DaemonSetStatus, 0, len(ddaStatus.AgentList)-1) newStatus = append(newStatus, ddaStatus.AgentList[:i]...) ddaStatus.AgentList = append(newStatus, ddaStatus.AgentList[i+1:]...) } diff --git a/internal/controller/datadogagent/controller_reconcile_agent_test.go b/internal/controller/datadogagent/controller_reconcile_agent_test.go index 2530d3edb..489d66360 100644 --- a/internal/controller/datadogagent/controller_reconcile_agent_test.go +++ b/internal/controller/datadogagent/controller_reconcile_agent_test.go @@ -5,7 +5,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" datadoghqv2alpha1 "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -1429,7 +1428,7 @@ func Test_removeStaleStatus(t *testing.T) { { name: "no status to delete", ddaStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{ + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{ { Desired: 1, Current: 1, @@ -1441,7 +1440,7 @@ func Test_removeStaleStatus(t *testing.T) { }, dsName: "bar", wantStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{ + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{ { Desired: 1, Current: 1, @@ -1455,7 +1454,7 @@ func Test_removeStaleStatus(t *testing.T) { { name: "delete status", ddaStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{ + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{ { Desired: 1, Current: 1, @@ -1475,7 +1474,7 @@ func Test_removeStaleStatus(t *testing.T) { }, dsName: "bar", wantStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{ + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{ { Desired: 1, Current: 1, @@ -1489,7 +1488,7 @@ func Test_removeStaleStatus(t *testing.T) { { name: "delete only status", ddaStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{ + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{ { Desired: 2, Current: 2, @@ -1502,17 +1501,17 @@ func Test_removeStaleStatus(t *testing.T) { }, dsName: "bar", wantStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{}, + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{}, }, }, { name: "agent status is empty", ddaStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{}, + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{}, }, dsName: "bar", wantStatus: &datadoghqv2alpha1.DatadogAgentStatus{ - AgentList: []*common.DaemonSetStatus{}, + AgentList: []*datadoghqv2alpha1.DaemonSetStatus{}, }, }, { diff --git a/internal/controller/datadogagent/controller_reconcile_v2.go b/internal/controller/datadogagent/controller_reconcile_v2.go index 9d8b199f5..050d4e80b 100644 --- a/internal/controller/datadogagent/controller_reconcile_v2.go +++ b/internal/controller/datadogagent/controller_reconcile_v2.go @@ -11,7 +11,6 @@ import ( "time" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" datadoghqv1alpha1 "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" datadoghqv2alpha1 "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" @@ -314,7 +313,7 @@ func ensureAutoGeneratedTokenInStatus(instance *datadoghqv2alpha1.DatadogAgent, newStatus = &datadoghqv2alpha1.DatadogAgentStatus{} } if newStatus.ClusterAgent == nil { - newStatus.ClusterAgent = &commonv1.DeploymentStatus{} + newStatus.ClusterAgent = &datadoghqv2alpha1.DeploymentStatus{} } // Persist generated token for subsequent reconcile loops newStatus.ClusterAgent.GeneratedToken = string(generatedToken) diff --git a/internal/controller/datadogagent/controller_reconcile_v2_test.go b/internal/controller/datadogagent/controller_reconcile_v2_test.go index a8f19dfe5..32b5e706a 100644 --- a/internal/controller/datadogagent/controller_reconcile_v2_test.go +++ b/internal/controller/datadogagent/controller_reconcile_v2_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" diff --git a/internal/controller/datadogagent/controller_v2_test.go b/internal/controller/datadogagent/controller_v2_test.go index 87d22160e..905798af1 100644 --- a/internal/controller/datadogagent/controller_v2_test.go +++ b/internal/controller/datadogagent/controller_v2_test.go @@ -14,7 +14,6 @@ import ( "time" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -91,9 +90,9 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -119,9 +118,9 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -147,7 +146,7 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.UnprivilegedSingleAgentContainerName), + string(apicommon.UnprivilegedSingleAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -174,9 +173,9 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -203,7 +202,7 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.UnprivilegedSingleAgentContainerName), + string(apicommon.UnprivilegedSingleAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -231,11 +230,11 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), - string(apicommonv1.SystemProbeContainerName), - string(apicommonv1.SecurityAgentContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), + string(apicommon.SystemProbeContainerName), + string(apicommon.SecurityAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -264,11 +263,11 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), - string(apicommonv1.SystemProbeContainerName), - string(apicommonv1.SecurityAgentContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), + string(apicommon.SystemProbeContainerName), + string(apicommon.SecurityAgentContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -296,10 +295,10 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), - string(apicommonv1.SystemProbeContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), + string(apicommon.SystemProbeContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -327,10 +326,10 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), - string(apicommonv1.SystemProbeContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), + string(apicommon.SystemProbeContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) @@ -359,10 +358,10 @@ func TestReconcileDatadogAgentV2_Reconcile(t *testing.T) { wantErr: false, wantFunc: func(c client.Client) error { expectedContainers := []string{ - string(apicommonv1.CoreAgentContainerName), - string(apicommonv1.ProcessAgentContainerName), - string(apicommonv1.TraceAgentContainerName), - string(apicommonv1.FIPSProxyContainerName), + string(apicommon.CoreAgentContainerName), + string(apicommon.ProcessAgentContainerName), + string(apicommon.TraceAgentContainerName), + string(apicommon.FIPSProxyContainerName), } return verifyDaemonsetContainers(c, resourcesNamespace, dsName, expectedContainers) diff --git a/internal/controller/datadogagent/feature/admissioncontroller/feature.go b/internal/controller/datadogagent/feature/admissioncontroller/feature.go index 9f07c376c..3eefc5bf7 100644 --- a/internal/controller/datadogagent/feature/admissioncontroller/feature.go +++ b/internal/controller/datadogagent/feature/admissioncontroller/feature.go @@ -9,7 +9,6 @@ import ( "encoding/json" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" componentdca "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/clusteragent" @@ -229,97 +228,97 @@ func (f *admissionControllerFeature) ManageDependencies(managers feature.Resourc } func (f *admissionControllerFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerEnabled, Value: "true", }) - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerMutateUnlabelled, Value: apiutils.BoolToString(&f.mutateUnlabelled), }) if f.registry != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerRegistryName, Value: f.registry, }) } if f.serviceName != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerServiceName, Value: f.serviceName, }) } if f.cwsInstrumentationEnabled { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerCWSInstrumentationEnabled, Value: apiutils.BoolToString(&f.cwsInstrumentationEnabled), }) - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerCWSInstrumentationMode, Value: f.cwsInstrumentationMode, }) } if f.agentCommunicationMode != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerInjectConfigMode, Value: f.agentCommunicationMode, }) } - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerLocalServiceName, Value: f.localServiceName, }) if f.failurePolicy != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerFailurePolicy, Value: f.failurePolicy, }) } - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerWebhookName, Value: f.webhookName, }) if f.agentSidecarConfig != nil { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarEnabled, Value: apiutils.BoolToString(&f.agentSidecarConfig.enabled), }) - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarClusterAgentEnabled, Value: apiutils.BoolToString(&f.agentSidecarConfig.clusterAgentCommunicationEnabled), }) if f.agentSidecarConfig.provider != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarProvider, Value: f.agentSidecarConfig.provider, }) } if f.agentSidecarConfig.registry != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarRegistry, Value: f.agentSidecarConfig.registry, }) } if f.agentSidecarConfig.imageName != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarImageName, Value: f.agentSidecarConfig.imageName, }) } if f.agentSidecarConfig.imageTag != "" { - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarImageTag, Value: f.agentSidecarConfig.imageTag, }) @@ -330,7 +329,7 @@ func (f *admissionControllerFeature) ManageClusterAgent(managers feature.PodTemp if err != nil { return err } - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarSelectors, Value: string(selectorsJSON), }) @@ -341,7 +340,7 @@ func (f *admissionControllerFeature) ManageClusterAgent(managers feature.PodTemp if err != nil { return err } - managers.EnvVar().AddEnvVarToContainer(common.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAgentSidecarProfiles, Value: string(profilesJSON), }) diff --git a/internal/controller/datadogagent/feature/admissioncontroller/feature_test.go b/internal/controller/datadogagent/feature/admissioncontroller/feature_test.go index 1b6ba3d7f..4f5064eb0 100644 --- a/internal/controller/datadogagent/feature/admissioncontroller/feature_test.go +++ b/internal/controller/datadogagent/feature/admissioncontroller/feature_test.go @@ -8,7 +8,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -143,7 +142,7 @@ func Test_admissionControllerFeature_Configure(t *testing.T) { WithAdmissionControllerEnabled(true). WithSidecarInjectionEnabled(true). WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "overrideName", Tag: "overrideTag", }, @@ -161,7 +160,7 @@ func Test_admissionControllerFeature_Configure(t *testing.T) { WithAdmissionControllerEnabled(true). WithSidecarInjectionEnabled(true). WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "overrideName", Tag: "overrideTag", }, @@ -195,7 +194,7 @@ func testDCAResources(acm string, registry string, cwsInstrumentationEnabled boo func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDAdmissionControllerEnabled, @@ -309,7 +308,7 @@ func getACEnvVars(acm, registry string, cws bool) []*corev1.EnvVar { func admissionControllerWantFunc(acm, registry string, cws bool) func(testing.TB, feature.PodTemplateManagers) { return func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] want := getACEnvVars(acm, registry, cws) assert.ElementsMatch( t, @@ -384,7 +383,7 @@ func getSidecarEnvVars(imageName, imageTag, registry string, selectors, profiles func sidecarInjectionWantFunc(acm, acRegistry, sidecarRegstry, imageName, imageTag string, selectors, profiles bool) func(testing.TB, feature.PodTemplateManagers) { return func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] want := sidecarHelperFunc(getACEnvVars(acm, acRegistry, false), getSidecarEnvVars(imageName, imageTag, sidecarRegstry, selectors, profiles)) assert.ElementsMatch( t, diff --git a/internal/controller/datadogagent/feature/apm/feature.go b/internal/controller/datadogagent/feature/apm/feature.go index bcb8248aa..0b76d7be6 100644 --- a/internal/controller/datadogagent/feature/apm/feature.go +++ b/internal/controller/datadogagent/feature/apm/feature.go @@ -17,7 +17,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -134,9 +133,9 @@ func (f *apmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.TraceAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.TraceAgentContainerName, }, }, } @@ -152,15 +151,15 @@ func (f *apmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ f.singleStepInstrumentation.languageDetection = &languageDetection{enabled: apiutils.BoolValue(dda.Spec.Features.APM.SingleStepInstrumentation.LanguageDetection.Enabled)} reqComp.ClusterAgent = feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.ClusterAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.ClusterAgentContainerName, }, } } f.processCheckRunsInCoreAgent = featutils.OverrideRunInCoreAgent(dda, f.processCheckRunsInCoreAgent) if f.shouldEnableLanguageDetection() && !f.processCheckRunsInCoreAgent { - reqComp.Agent.Containers = append(reqComp.Agent.Containers, apicommonv1.ProcessAgentContainerName) + reqComp.Agent.Containers = append(reqComp.Agent.Containers, apicommon.ProcessAgentContainerName) } } @@ -181,9 +180,9 @@ func (f *apmFeature) ManageDependencies(managers feature.ResourceManagers, compo if common.ShouldCreateAgentLocalService(managers.Store().GetVersionInfo(), f.forceEnableLocalService) { apmPort := &corev1.ServicePort{ Protocol: corev1.ProtocolTCP, - TargetPort: intstr.FromInt(int(apicommon.DefaultApmPort)), - Port: apicommon.DefaultApmPort, - Name: apicommon.DefaultApmPortName, + TargetPort: intstr.FromInt(int(v2alpha1.DefaultApmPort)), + Port: v2alpha1.DefaultApmPort, + Name: v2alpha1.DefaultApmPortName, } if f.hostPortEnabled { apmPort.Port = f.hostPortHostPort @@ -270,13 +269,13 @@ func (f *apmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er // This configuration is not supported return fmt.Errorf("`spec.features.apm.instrumentation.enabledNamespaces` and `spec.features.apm.instrumentation.disabledNamespaces` cannot be set together") } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAPMInstrumentationEnabled, Value: apiutils.BoolToString(&f.singleStepInstrumentation.enabled), }) if f.shouldEnableLanguageDetection() { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDLanguageDetectionEnabled, Value: "true", }) @@ -287,7 +286,7 @@ func (f *apmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er if err != nil { return err } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAPMInstrumentationDisabledNamespaces, Value: string(ns), }) @@ -297,7 +296,7 @@ func (f *apmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er if err != nil { return err } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAPMInstrumentationEnabledNamespaces, Value: string(ns), }) @@ -307,7 +306,7 @@ func (f *apmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er if err != nil { return err } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAPMInstrumentationLibVersions, Value: string(libs), }) @@ -321,18 +320,18 @@ func (f *apmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er // if SingleContainerStrategy is enabled and can be used with the configured feature set. // It should do nothing if the feature doesn't need to configure it. func (f *apmFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } // ManageNodeAgent allows a feature to configure the Node Agent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *apmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.TraceAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.TraceAgentContainerName, managers, provider) return nil } -func (f *apmFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *apmFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { managers.EnvVar().AddEnvVarToContainer(agentContainerName, &corev1.EnvVar{ Name: apicommon.DDAPMEnabled, @@ -341,13 +340,13 @@ func (f *apmFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContain // udp apmPort := &corev1.ContainerPort{ - Name: apicommon.DefaultApmPortName, - ContainerPort: apicommon.DefaultApmPort, + Name: v2alpha1.DefaultApmPortName, + ContainerPort: v2alpha1.DefaultApmPort, Protocol: corev1.ProtocolTCP, } if f.hostPortEnabled { apmPort.HostPort = f.hostPortHostPort - receiverPortEnvVarValue := apicommon.DefaultApmPort + receiverPortEnvVarValue := v2alpha1.DefaultApmPort // if using host network, host port should be set and needs to match container port if f.useHostNetwork { apmPort.ContainerPort = f.hostPortHostPort @@ -368,13 +367,13 @@ func (f *apmFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContain if f.shouldEnableLanguageDetection() { // Enable language detection in core agent - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDLanguageDetectionEnabled, Value: "true", }) // Enable language detection in process agent - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDLanguageDetectionEnabled, Value: "true", }) @@ -384,8 +383,8 @@ func (f *apmFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContain Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&f.processCheckRunsInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, runInCoreAgentEnvVar) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, runInCoreAgentEnvVar) } // uds diff --git a/internal/controller/datadogagent/feature/apm/feature_test.go b/internal/controller/datadogagent/feature/apm/feature_test.go index a83934bc7..4d556c999 100644 --- a/internal/controller/datadogagent/feature/apm/feature_test.go +++ b/internal/controller/datadogagent/feature/apm/feature_test.go @@ -10,7 +10,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/DataDog/datadog-operator/api/utils" @@ -100,7 +99,7 @@ func TestAPMFeature(t *testing.T) { WithAPMUDSEnabled(true, apmSocketHostPath). Build(), WantConfigure: true, - Agent: testAgentUDSOnly(apicommonv1.TraceAgentContainerName), + Agent: testAgentUDSOnly(apicommon.TraceAgentContainerName), }, { Name: "apm enabled, use uds with single container strategy", @@ -111,7 +110,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(true). Build(), WantConfigure: true, - Agent: testAgentUDSOnly(apicommonv1.UnprivilegedSingleAgentContainerName), + Agent: testAgentUDSOnly(apicommon.UnprivilegedSingleAgentContainerName), }, { Name: "apm enabled, use uds and host port", @@ -121,7 +120,7 @@ func TestAPMFeature(t *testing.T) { WithAPMUDSEnabled(true, apmSocketHostPath). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.TraceAgentContainerName, 8126, false), + Agent: testAgentHostPortUDS(apicommon.TraceAgentContainerName, 8126, false), }, { Name: "apm enabled, use uds and host port with single container strategy", @@ -132,7 +131,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(true). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.UnprivilegedSingleAgentContainerName, 8126, false), + Agent: testAgentHostPortUDS(apicommon.UnprivilegedSingleAgentContainerName, 8126, false), }, { Name: "apm enabled, use uds and custom host port", @@ -142,7 +141,7 @@ func TestAPMFeature(t *testing.T) { WithAPMUDSEnabled(true, apmSocketHostPath). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.TraceAgentContainerName, 1234, false), + Agent: testAgentHostPortUDS(apicommon.TraceAgentContainerName, 1234, false), }, { Name: "apm enabled, use uds and custom host port with single container strategy", @@ -153,7 +152,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(true). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.UnprivilegedSingleAgentContainerName, 1234, false), + Agent: testAgentHostPortUDS(apicommon.UnprivilegedSingleAgentContainerName, 1234, false), }, { Name: "apm enabled, use uds and host port enabled but no custom host port", @@ -163,7 +162,7 @@ func TestAPMFeature(t *testing.T) { WithAPMUDSEnabled(true, apmSocketHostPath). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.TraceAgentContainerName, 8126, false), + Agent: testAgentHostPortUDS(apicommon.TraceAgentContainerName, 8126, false), }, { Name: "apm enabled, use uds and host port enabled but no custom host port with single container strategy", @@ -174,7 +173,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(true). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.UnprivilegedSingleAgentContainerName, 8126, false), + Agent: testAgentHostPortUDS(apicommon.UnprivilegedSingleAgentContainerName, 8126, false), }, { Name: "apm enabled, host port enabled host network", @@ -186,7 +185,7 @@ func TestAPMFeature(t *testing.T) { }). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.TraceAgentContainerName, 8126, true), + Agent: testAgentHostPortUDS(apicommon.TraceAgentContainerName, 8126, true), }, { Name: "apm enabled, host port enabled host network with single container strategy", @@ -199,7 +198,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(true). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.UnprivilegedSingleAgentContainerName, 8126, true), + Agent: testAgentHostPortUDS(apicommon.UnprivilegedSingleAgentContainerName, 8126, true), }, { Name: "apm enabled, custom host port host network", @@ -211,7 +210,7 @@ func TestAPMFeature(t *testing.T) { }). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.TraceAgentContainerName, 1234, true), + Agent: testAgentHostPortUDS(apicommon.TraceAgentContainerName, 1234, true), }, { Name: "apm enabled, custom host port host network with single container strategy", @@ -224,7 +223,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(true). BuildWithDefaults(), WantConfigure: true, - Agent: testAgentHostPortUDS(apicommonv1.UnprivilegedSingleAgentContainerName, 1234, true), + Agent: testAgentHostPortUDS(apicommon.UnprivilegedSingleAgentContainerName, 1234, true), }, { Name: "basic apm single step instrumentation", @@ -285,7 +284,7 @@ func TestAPMFeature(t *testing.T) { WithSingleContainerStrategy(false). Build(), WantConfigure: true, - Agent: testTraceAgentEnabled(apicommonv1.TraceAgentContainerName), + Agent: testTraceAgentEnabled(apicommon.TraceAgentContainerName), ClusterAgent: testAPMInstrumentationDisabledWithAC(), }, { @@ -350,7 +349,7 @@ func TestAPMFeature(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "true"}}, }, ). @@ -371,7 +370,7 @@ func TestAPMFeature(t *testing.T) { tests.Run(t, buildAPMFeature) } -func testTraceAgentEnabled(containerName apicommonv1.AgentContainerName) *test.ComponentTest { +func testTraceAgentEnabled(containerName apicommon.AgentContainerName) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) @@ -408,7 +407,7 @@ func testAgentHostPortOnly() *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.TraceAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.TraceAgentContainerName] expectedAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDAPMEnabled, @@ -429,7 +428,7 @@ func testAgentHostPortOnly() *test.ComponentTest { "Trace Agent ENVs \ndiff = %s", cmp.Diff(agentEnvs, expectedAgentEnvs), ) - agentPorts := mgr.PortMgr.PortsByC[apicommonv1.TraceAgentContainerName] + agentPorts := mgr.PortMgr.PortsByC[apicommon.TraceAgentContainerName] expectedPorts := []*corev1.ContainerPort{ { Name: "traceport", @@ -447,7 +446,7 @@ func testAgentHostPortOnly() *test.ComponentTest { ) } -func testAgentUDSOnly(agentContainerName apicommonv1.AgentContainerName) *test.ComponentTest { +func testAgentUDSOnly(agentContainerName apicommon.AgentContainerName) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) @@ -524,7 +523,7 @@ func testAPMInstrumentationFull() *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDAPMInstrumentationEnabled, @@ -554,7 +553,7 @@ func testAPMInstrumentationDisabledWithAC() *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] assert.True( t, @@ -570,7 +569,7 @@ func testAPMInstrumentationNamespaces() *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDAPMInstrumentationEnabled, @@ -599,7 +598,7 @@ func testAPMInstrumentation() *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDAPMInstrumentationEnabled, @@ -621,7 +620,7 @@ func testAPMInstrumentationWithLanguageDetectionEnabledForClusterAgent() *test.C mgr := mgrInterface.(*fake.PodTemplateManagers) // Test Cluster Agent Env Vars - clusterAgentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + clusterAgentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedClusterAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDAPMInstrumentationEnabled, @@ -646,8 +645,8 @@ func testAPMInstrumentationWithLanguageDetectionForNodeAgent(languageDetectionEn func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - coreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] - processAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ProcessAgentContainerName] + coreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] + processAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ProcessAgentContainerName] var expectedEnvVars []*corev1.EnvVar if languageDetectionEnabled { @@ -680,7 +679,7 @@ func testAPMInstrumentationWithLanguageDetectionForNodeAgent(languageDetectionEn ) } -func testAgentHostPortUDS(agentContainerName apicommonv1.AgentContainerName, hostPort int32, hostNetwork bool) *test.ComponentTest { +func testAgentHostPortUDS(agentContainerName apicommon.AgentContainerName, hostPort int32, hostNetwork bool) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) diff --git a/internal/controller/datadogagent/feature/asm/feature.go b/internal/controller/datadogagent/feature/asm/feature.go index 43c2dde4e..2f73a5910 100644 --- a/internal/controller/datadogagent/feature/asm/feature.go +++ b/internal/controller/datadogagent/feature/asm/feature.go @@ -7,7 +7,6 @@ package asm import ( apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -66,8 +65,8 @@ func (f *asmFeature) Configure(dda *v2alpha1.DatadogAgent) feature.RequiredCompo return feature.RequiredComponents{ ClusterAgent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.ClusterAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.ClusterAgentContainerName, }, }, } @@ -83,7 +82,7 @@ func (f *asmFeature) ManageDependencies(_ feature.ResourceManagers, _ feature.Re // It should do nothing if the feature doesn't need to configure it. func (f *asmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { if f.threatsEnabled { - if err := managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + if err := managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAppsecEnabled, Value: "true", }, merger.IgnoreNewEnvVarMergeFunction); err != nil { @@ -92,7 +91,7 @@ func (f *asmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er } if f.iastEnabled { - if err := managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + if err := managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerIASTEnabled, Value: "true", }, merger.IgnoreNewEnvVarMergeFunction); err != nil { @@ -101,7 +100,7 @@ func (f *asmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er } if f.scaEnabled { - if err := managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + if err := managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAdmissionControllerAppsecSCAEnabled, Value: "true", }, merger.IgnoreNewEnvVarMergeFunction); err != nil { diff --git a/internal/controller/datadogagent/feature/asm/feature_test.go b/internal/controller/datadogagent/feature/asm/feature_test.go index eb2059323..a9da36f43 100644 --- a/internal/controller/datadogagent/feature/asm/feature_test.go +++ b/internal/controller/datadogagent/feature/asm/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature/fake" @@ -29,7 +28,7 @@ func assertEnv(envVars ...envVar) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] for _, envVar := range envVars { if !envVar.present { diff --git a/internal/controller/datadogagent/feature/autoscaling/feature.go b/internal/controller/datadogagent/feature/autoscaling/feature.go index fc8a6180e..0c9a0d40e 100644 --- a/internal/controller/datadogagent/feature/autoscaling/feature.go +++ b/internal/controller/datadogagent/feature/autoscaling/feature.go @@ -9,7 +9,6 @@ import ( "errors" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" componentdca "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/clusteragent" @@ -85,7 +84,7 @@ func (f *autoscalingFeature) ManageDependencies(managers feature.ResourceManager // ManageClusterAgent allows a feature to configure the ClusterAgent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *autoscalingFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDAutoscalingWorkloadEnabled, Value: "true", }) diff --git a/internal/controller/datadogagent/feature/autoscaling/feature_test.go b/internal/controller/datadogagent/feature/autoscaling/feature_test.go index b5ae59f7a..38d15a28c 100644 --- a/internal/controller/datadogagent/feature/autoscaling/feature_test.go +++ b/internal/controller/datadogagent/feature/autoscaling/feature_test.go @@ -10,7 +10,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" @@ -148,7 +147,7 @@ func testDCAResources(enabled bool) *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] var expectedAgentEnvs []*corev1.EnvVar if enabled { expectedAgentEnvs = append(expectedAgentEnvs, diff --git a/internal/controller/datadogagent/feature/clusterchecks/feature.go b/internal/controller/datadogagent/feature/clusterchecks/feature.go index ce624864d..d57aa0a44 100644 --- a/internal/controller/datadogagent/feature/clusterchecks/feature.go +++ b/internal/controller/datadogagent/feature/clusterchecks/feature.go @@ -7,7 +7,6 @@ package clusterchecks import ( apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/objects" @@ -139,7 +138,7 @@ func (f *clusterChecksFeature) ManageDependencies(managers feature.ResourceManag func (f *clusterChecksFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { managers.EnvVar().AddEnvVarToContainer( - commonv1.ClusterAgentContainerName, + apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDClusterChecksEnabled, Value: "true", @@ -147,7 +146,7 @@ func (f *clusterChecksFeature) ManageClusterAgent(managers feature.PodTemplateMa ) managers.EnvVar().AddEnvVarToContainer( - commonv1.ClusterAgentContainerName, + apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExtraConfigProviders, Value: apicommon.KubeServicesAndEndpointsConfigProviders, @@ -155,7 +154,7 @@ func (f *clusterChecksFeature) ManageClusterAgent(managers feature.PodTemplateMa ) managers.EnvVar().AddEnvVarToContainer( - commonv1.ClusterAgentContainerName, + apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExtraListeners, Value: apicommon.KubeServicesAndEndpointsListeners, @@ -173,16 +172,16 @@ func (f *clusterChecksFeature) ManageClusterAgent(managers feature.PodTemplateMa // if SingleContainerStrategy is enabled and can be used with the configured feature set. // It should do nothing if the feature doesn't need to configure it. func (f *clusterChecksFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(commonv1.UnprivilegedSingleAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } func (f *clusterChecksFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(commonv1.CoreAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.CoreAgentContainerName, managers, provider) return nil } -func (f *clusterChecksFeature) manageNodeAgent(agentContainerName commonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *clusterChecksFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { if f.useClusterCheckRunners { managers.EnvVar().AddEnvVarToContainer( agentContainerName, @@ -207,7 +206,7 @@ func (f *clusterChecksFeature) manageNodeAgent(agentContainerName commonv1.Agent func (f *clusterChecksFeature) ManageClusterChecksRunner(managers feature.PodTemplateManagers) error { if f.useClusterCheckRunners { managers.EnvVar().AddEnvVarToContainer( - commonv1.ClusterChecksRunnersContainerName, + apicommon.ClusterChecksRunnersContainerName, &corev1.EnvVar{ Name: apicommon.DDClusterChecksEnabled, Value: "true", @@ -215,7 +214,7 @@ func (f *clusterChecksFeature) ManageClusterChecksRunner(managers feature.PodTem ) managers.EnvVar().AddEnvVarToContainer( - commonv1.ClusterChecksRunnersContainerName, + apicommon.ClusterChecksRunnersContainerName, &corev1.EnvVar{ Name: apicommon.DDExtraConfigProviders, Value: apicommon.ClusterChecksConfigProvider, diff --git a/internal/controller/datadogagent/feature/clusterchecks/feature_test.go b/internal/controller/datadogagent/feature/clusterchecks/feature_test.go index 930305cef..66fbb9d93 100644 --- a/internal/controller/datadogagent/feature/clusterchecks/feature_test.go +++ b/internal/controller/datadogagent/feature/clusterchecks/feature_test.go @@ -14,7 +14,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log/zap" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -66,7 +65,7 @@ func TestClusterChecksFeature(t *testing.T) { Build(), WantConfigure: true, ClusterAgent: test.NewDefaultComponentTest().WithWantFunc(wantClusterAgentHasExpectedEnvsAndChecksum), - Agent: testAgentHasExpectedEnvsWithNoRunners(apicommonv1.CoreAgentContainerName), + Agent: testAgentHasExpectedEnvsWithNoRunners(apicommon.CoreAgentContainerName), }, { Name: "cluster checks enabled and runners not enabled with single container strategy", @@ -77,7 +76,7 @@ func TestClusterChecksFeature(t *testing.T) { Build(), WantConfigure: true, ClusterAgent: test.NewDefaultComponentTest().WithWantFunc(wantClusterAgentHasExpectedEnvsAndChecksum), - Agent: testAgentHasExpectedEnvsWithNoRunners(apicommonv1.UnprivilegedSingleAgentContainerName), + Agent: testAgentHasExpectedEnvsWithNoRunners(apicommon.UnprivilegedSingleAgentContainerName), }, { Name: "cluster checks enabled and runners enabled", @@ -88,7 +87,7 @@ func TestClusterChecksFeature(t *testing.T) { WantConfigure: true, ClusterAgent: test.NewDefaultComponentTest().WithWantFunc(wantClusterAgentHasExpectedEnvsAndChecksum), ClusterChecksRunner: testClusterChecksRunnerHasExpectedEnvs(), - Agent: testAgentHasExpectedEnvsWithRunners(apicommonv1.CoreAgentContainerName), + Agent: testAgentHasExpectedEnvsWithRunners(apicommon.CoreAgentContainerName), }, { Name: "cluster checks enabled and runners enabled with single container strategy", @@ -100,7 +99,7 @@ func TestClusterChecksFeature(t *testing.T) { WantConfigure: true, ClusterAgent: test.NewDefaultComponentTest().WithWantFunc(wantClusterAgentHasExpectedEnvsAndChecksum), ClusterChecksRunner: testClusterChecksRunnerHasExpectedEnvs(), - Agent: testAgentHasExpectedEnvsWithRunners(apicommonv1.UnprivilegedSingleAgentContainerName), + Agent: testAgentHasExpectedEnvsWithRunners(apicommon.UnprivilegedSingleAgentContainerName), }, } @@ -164,7 +163,7 @@ func wantClusterAgentHasExpectedEnvsAndChecksum(t testing.TB, mgrInterface featu func wantClusterAgentHasExpectedEnvs(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - clusterAgentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + clusterAgentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedClusterAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDClusterChecksEnabled, @@ -199,7 +198,7 @@ func testClusterChecksRunnerHasExpectedEnvs() *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - clusterRunnerEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterChecksRunnersContainerName] + clusterRunnerEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterChecksRunnersContainerName] expectedClusterRunnerEnvs := []*corev1.EnvVar{ { Name: apicommon.DDClusterChecksEnabled, @@ -220,7 +219,7 @@ func testClusterChecksRunnerHasExpectedEnvs() *test.ComponentTest { ) } -func testAgentHasExpectedEnvsWithRunners(agentContainerName apicommonv1.AgentContainerName) *test.ComponentTest { +func testAgentHasExpectedEnvsWithRunners(agentContainerName apicommon.AgentContainerName) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) @@ -242,7 +241,7 @@ func testAgentHasExpectedEnvsWithRunners(agentContainerName apicommonv1.AgentCon ) } -func testAgentHasExpectedEnvsWithNoRunners(agentContainerName apicommonv1.AgentContainerName) *test.ComponentTest { +func testAgentHasExpectedEnvsWithNoRunners(agentContainerName apicommon.AgentContainerName) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) diff --git a/internal/controller/datadogagent/feature/cspm/feature.go b/internal/controller/datadogagent/feature/cspm/feature.go index 92f7d80c5..266a7e9da 100644 --- a/internal/controller/datadogagent/feature/cspm/feature.go +++ b/internal/controller/datadogagent/feature/cspm/feature.go @@ -9,7 +9,6 @@ import ( "strconv" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -51,7 +50,7 @@ type cspmFeature struct { owner metav1.Object logger logr.Logger - customConfig *apicommonv1.CustomConfig + customConfig *v2alpha1.CustomConfig configMapName string customConfigAnnotationKey string customConfigAnnotationValue string @@ -80,7 +79,7 @@ func (f *cspmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Req } if cspmConfig.CustomBenchmarks != nil { - f.customConfig = v2alpha1.ConvertCustomConfig(cspmConfig.CustomBenchmarks) + f.customConfig = cspmConfig.CustomBenchmarks hash, err := comparison.GenerateMD5ForSpec(f.customConfig) if err != nil { f.logger.Error(err, "couldn't generate hash for cspm custom benchmarks config") @@ -90,7 +89,7 @@ func (f *cspmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Req f.customConfigAnnotationValue = hash f.customConfigAnnotationKey = object.GetChecksumAnnotationKey(feature.CSPMIDType) } - f.configMapName = apicommonv1.GetConfName(dda, f.customConfig, apicommon.DefaultCSPMConf) + f.configMapName = v2alpha1.GetConfName(dda, f.customConfig, apicommon.DefaultCSPMConf) // TODO add settings to configure f.createPSP @@ -102,8 +101,8 @@ func (f *cspmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Req ClusterAgent: feature.RequiredComponent{IsRequired: apiutils.NewBoolPointer(true)}, Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.SecurityAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.SecurityAgentContainerName, }, }, } @@ -195,7 +194,7 @@ func (f *cspmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) e ReadOnly: true, } - managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommonv1.ClusterAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.ClusterAgentContainerName) } } else { // Custom config is referenced via ConfigData (and configMap is created in ManageDependencies) @@ -207,7 +206,7 @@ func (f *cspmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) e apicommon.SecurityAgentComplianceConfigDirVolumePath+"/"+cspmConfFileName, cspmConfFileName, ) - managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommonv1.ClusterAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.ClusterAgentContainerName) } // Mount custom policies to cluster agent container. managers.Volume().AddVolume(&vol) @@ -217,14 +216,14 @@ func (f *cspmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) e Name: apicommon.DDComplianceConfigEnabled, Value: "true", } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, enabledEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, enabledEnvVar) if f.checkInterval != "" { intervalEnvVar := &corev1.EnvVar{ Name: apicommon.DDComplianceConfigCheckInterval, Value: f.checkInterval, } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, intervalEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, intervalEnvVar) } return nil @@ -245,7 +244,7 @@ func (f *cspmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov "AUDIT_CONTROL", "AUDIT_READ", } - managers.SecurityContext().AddCapabilitiesToContainer(capabilities, apicommonv1.SecurityAgentContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(capabilities, apicommon.SecurityAgentContainerName) volMountMgr := managers.VolumeMount() VolMgr := managers.Volume() @@ -279,7 +278,7 @@ func (f *cspmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov } } // Mount custom policies to init-volume container. - managers.VolumeMount().AddVolumeMountToInitContainer(&volMount, apicommonv1.InitVolumeContainerName) + managers.VolumeMount().AddVolumeMountToInitContainer(&volMount, apicommon.InitVolumeContainerName) managers.Volume().AddVolume(&vol) // Add workaround command to init-volume container @@ -294,7 +293,7 @@ func (f *cspmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov // Add empty volume to Security Agent benchmarksVol, benchmarksVolMount := volume.GetVolumesEmptyDir(apicommon.SecurityAgentComplianceConfigDirVolumeName, apicommon.SecurityAgentComplianceConfigDirVolumePath, true) managers.Volume().AddVolume(&benchmarksVol) - managers.VolumeMount().AddVolumeMountToContainer(&benchmarksVolMount, apicommonv1.SecurityAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&benchmarksVolMount, apicommon.SecurityAgentContainerName) // Add compliance.d volume mount to init-volume container at different path benchmarkVolMountInitVol := corev1.VolumeMount{ @@ -302,32 +301,32 @@ func (f *cspmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov MountPath: "/opt/datadog-agent/compliance.d", ReadOnly: false, } - volMountMgr.AddVolumeMountToInitContainer(&benchmarkVolMountInitVol, apicommonv1.InitVolumeContainerName) + volMountMgr.AddVolumeMountToInitContainer(&benchmarkVolMountInitVol, apicommon.InitVolumeContainerName) } // cgroups volume mount cgroupsVol, cgroupsVolMount := volume.GetVolumes(apicommon.CgroupsVolumeName, apicommon.CgroupsHostPath, apicommon.CgroupsMountPath, true) - volMountMgr.AddVolumeMountToContainer(&cgroupsVolMount, apicommonv1.SecurityAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&cgroupsVolMount, apicommon.SecurityAgentContainerName) VolMgr.AddVolume(&cgroupsVol) // passwd volume mount passwdVol, passwdVolMount := volume.GetVolumes(apicommon.PasswdVolumeName, apicommon.PasswdHostPath, apicommon.PasswdMountPath, true) - volMountMgr.AddVolumeMountToContainer(&passwdVolMount, apicommonv1.SecurityAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&passwdVolMount, apicommon.SecurityAgentContainerName) VolMgr.AddVolume(&passwdVol) // procdir volume mount procdirVol, procdirVolMount := volume.GetVolumes(apicommon.ProcdirVolumeName, apicommon.ProcdirHostPath, apicommon.ProcdirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&procdirVolMount, apicommonv1.SecurityAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&procdirVolMount, apicommon.SecurityAgentContainerName) VolMgr.AddVolume(&procdirVol) // host root volume mount hostRootVol, hostRootVolMount := volume.GetVolumes(apicommon.HostRootVolumeName, apicommon.HostRootHostPath, apicommon.HostRootMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostRootVolMount, apicommonv1.SecurityAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostRootVolMount, apicommon.SecurityAgentContainerName) VolMgr.AddVolume(&hostRootVol) // group volume mount groupVol, groupVolMount := volume.GetVolumes(apicommon.GroupVolumeName, apicommon.GroupHostPath, apicommon.GroupMountPath, true) - volMountMgr.AddVolumeMountToContainer(&groupVolMount, apicommonv1.SecurityAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&groupVolMount, apicommon.SecurityAgentContainerName) VolMgr.AddVolume(&groupVol) // env vars @@ -335,27 +334,27 @@ func (f *cspmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov Name: apicommon.DDComplianceConfigEnabled, Value: "true", } - managers.EnvVar().AddEnvVarToContainers([]apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SecurityAgentContainerName}, enabledEnvVar) + managers.EnvVar().AddEnvVarToContainers([]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SecurityAgentContainerName}, enabledEnvVar) hostRootEnvVar := &corev1.EnvVar{ Name: apicommon.DDHostRootEnvVar, Value: apicommon.HostRootMountPath, } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SecurityAgentContainerName, hostRootEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SecurityAgentContainerName, hostRootEnvVar) if f.checkInterval != "" { intervalEnvVar := &corev1.EnvVar{ Name: apicommon.DDComplianceConfigCheckInterval, Value: f.checkInterval, } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SecurityAgentContainerName, intervalEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SecurityAgentContainerName, intervalEnvVar) } hostBenchmarksEnabledEnvVar := &corev1.EnvVar{ Name: apicommon.DDComplianceHostBenchmarksEnabled, Value: apiutils.BoolToString(&f.hostBenchmarksEnabled), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SecurityAgentContainerName, hostBenchmarksEnabledEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SecurityAgentContainerName, hostBenchmarksEnabledEnvVar) return nil } diff --git a/internal/controller/datadogagent/feature/cspm/feature_test.go b/internal/controller/datadogagent/feature/cspm/feature_test.go index d53518b37..675c8d429 100644 --- a/internal/controller/datadogagent/feature/cspm/feature_test.go +++ b/internal/controller/datadogagent/feature/cspm/feature_test.go @@ -14,7 +14,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -26,8 +25,8 @@ import ( "github.com/stretchr/testify/assert" ) -var customConfig = &apicommonv1.CustomConfig{ - ConfigMap: &apicommonv1.ConfigMapConfig{ +var customConfig = &v2alpha1.CustomConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom_test", Items: []corev1.KeyToPath{ { @@ -52,7 +51,7 @@ func Test_cspmFeature_Configure(t *testing.T) { { ddaCSPMEnabled.Spec.Features.CSPM.Enabled = apiutils.NewBoolPointer(true) ddaCSPMEnabled.Spec.Features.CSPM.CustomBenchmarks = &v2alpha1.CustomConfig{ - ConfigMap: &apicommonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom_test", Items: []corev1.KeyToPath{ { @@ -89,7 +88,7 @@ func cspmClusterAgentWantFunc() *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] want := []*corev1.EnvVar{ { @@ -112,7 +111,7 @@ func cspmClusterAgentWantFunc() *test.ComponentTest { }, } - volumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ClusterAgentContainerName] + volumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ClusterAgentContainerName] assert.True(t, apiutils.IsEqualStruct(volumeMounts, wantVolumeMounts), "Cluster Agent volume mounts \ndiff = %s", cmp.Diff(volumeMounts, wantVolumeMounts)) wantVolumes := []corev1.Volume{ @@ -168,7 +167,7 @@ func cspmAgentNodeWantFunc() *test.ComponentTest { }, } - securityAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SecurityAgentContainerName] + securityAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SecurityAgentContainerName] assert.True(t, apiutils.IsEqualStruct(securityAgentEnvVars, want), "Agent envvars \ndiff = %s", cmp.Diff(securityAgentEnvVars, want)) // check volume mounts @@ -205,7 +204,7 @@ func cspmAgentNodeWantFunc() *test.ComponentTest { }, } - securityAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SecurityAgentContainerName] + securityAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SecurityAgentContainerName] assert.True(t, apiutils.IsEqualStruct(securityAgentVolumeMounts, wantVolumeMounts), "Security Agent volume mounts \ndiff = %s", cmp.Diff(securityAgentVolumeMounts, wantVolumeMounts)) // check volumes diff --git a/internal/controller/datadogagent/feature/cws/feature.go b/internal/controller/datadogagent/feature/cws/feature.go index 94d9e8ad5..fc38c9ff1 100644 --- a/internal/controller/datadogagent/feature/cws/feature.go +++ b/internal/controller/datadogagent/feature/cws/feature.go @@ -21,7 +21,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" ) @@ -52,7 +51,7 @@ type cwsFeature struct { owner metav1.Object logger logr.Logger - customConfig *apicommonv1.CustomConfig + customConfig *v2alpha1.CustomConfig configMapName string customConfigAnnotationKey string customConfigAnnotationValue string @@ -76,7 +75,7 @@ func (f *cwsFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ f.syscallMonitorEnabled = apiutils.BoolValue(cwsConfig.SyscallMonitorEnabled) if cwsConfig.CustomPolicies != nil { - f.customConfig = v2alpha1.ConvertCustomConfig(cwsConfig.CustomPolicies) + f.customConfig = cwsConfig.CustomPolicies hash, err := comparison.GenerateMD5ForSpec(f.customConfig) if err != nil { f.logger.Error(err, "couldn't generate hash for cws custom policies config") @@ -86,7 +85,7 @@ func (f *cwsFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ f.customConfigAnnotationValue = hash f.customConfigAnnotationKey = object.GetChecksumAnnotationKey(feature.CWSIDType) } - f.configMapName = apicommonv1.GetConfName(dda, f.customConfig, apicommon.DefaultCWSConf) + f.configMapName = v2alpha1.GetConfName(dda, f.customConfig, apicommon.DefaultCWSConf) if cwsConfig.Network != nil { f.networkEnabled = apiutils.BoolValue(cwsConfig.Network.Enabled) @@ -105,9 +104,9 @@ func (f *cwsFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.SecurityAgentContainerName, - apicommonv1.SystemProbeContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.SecurityAgentContainerName, + apicommon.SystemProbeContainerName, }, }, } @@ -179,15 +178,15 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi managers.Annotation().AddAnnotation(apicommon.SystemProbeAppArmorAnnotationKey, apicommon.SystemProbeAppArmorAnnotationValue) // security context capabilities - managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName) // envvars // env vars for Core Agent, Security Agent and System Probe - containersForEnvVars := []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.SecurityAgentContainerName, - apicommonv1.SystemProbeContainerName, + containersForEnvVars := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.SecurityAgentContainerName, + apicommon.SystemProbeContainerName, } enabledEnvVar := &corev1.EnvVar{ @@ -215,7 +214,7 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Name: apicommon.DDRuntimeSecurityConfigNetworkEnabled, Value: "true", } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, networkEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SystemProbeContainerName, networkEnvVar) } if f.activityDumpEnabled { @@ -223,7 +222,7 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Name: apicommon.DDRuntimeSecurityConfigActivityDumpEnabled, Value: "true", } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, adEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SystemProbeContainerName, adEnvVar) } if f.remoteConfigurationEnabled { @@ -231,76 +230,76 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Name: apicommon.DDRuntimeSecurityConfigRemoteConfigurationEnabled, Value: "true", } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, rcEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SystemProbeContainerName, rcEnvVar) } policiesDirEnvVar := &corev1.EnvVar{ Name: apicommon.DDRuntimeSecurityConfigPoliciesDir, Value: apicommon.SecurityAgentRuntimePoliciesDirVolumePath, } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, policiesDirEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SystemProbeContainerName, policiesDirEnvVar) hostRootEnvVar := &corev1.EnvVar{ Name: apicommon.DDHostRootEnvVar, Value: apicommon.HostRootMountPath, } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SecurityAgentContainerName, hostRootEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SecurityAgentContainerName, hostRootEnvVar) volMountMgr := managers.VolumeMount() volMgr := managers.Volume() // debugfs volume mount debugfsVol, debugfsVolMount := volume.GetVolumes(apicommon.DebugfsVolumeName, apicommon.DebugfsPath, apicommon.DebugfsPath, false) - volMountMgr.AddVolumeMountToContainer(&debugfsVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&debugfsVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&debugfsVol) // tracefs volume mount tracefsVol, tracefsVolMount := volume.GetVolumes(apicommon.TracefsVolumeName, apicommon.TracefsPath, apicommon.TracefsPath, false) - volMountMgr.AddVolumeMountToContainer(&tracefsVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&tracefsVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&tracefsVol) // securityfs volume mount securityfsVol, securityfsVolMount := volume.GetVolumes(apicommon.SecurityfsVolumeName, apicommon.SecurityfsVolumePath, apicommon.SecurityfsMountPath, true) - volMountMgr.AddVolumeMountToContainer(&securityfsVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&securityfsVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&securityfsVol) // socket volume mount (needs write perms for the system probe container but not the others) socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false) - volMountMgr.AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&socketVolMount, apicommon.SystemProbeContainerName) _, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true) managers.VolumeMount().AddVolumeMountToContainers( &socketVolMountReadOnly, - []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.SecurityAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.SecurityAgentContainerName, }, ) volMgr.AddVolume(&socketVol) // procdir volume mount procdirVol, procdirVolMount := volume.GetVolumes(apicommon.ProcdirVolumeName, apicommon.ProcdirHostPath, apicommon.ProcdirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&procdirVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&procdirVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&procdirVol) // passwd volume mount passwdVol, passwdVolMount := volume.GetVolumes(apicommon.PasswdVolumeName, apicommon.PasswdHostPath, apicommon.PasswdMountPath, true) - volMountMgr.AddVolumeMountToContainer(&passwdVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&passwdVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&passwdVol) // group volume mount groupVol, groupVolMount := volume.GetVolumes(apicommon.GroupVolumeName, apicommon.GroupHostPath, apicommon.GroupMountPath, true) - volMountMgr.AddVolumeMountToContainer(&groupVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&groupVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&groupVol) // osRelease volume mount osReleaseVol, osReleaseVolMount := volume.GetVolumes(apicommon.SystemProbeOSReleaseDirVolumeName, apicommon.SystemProbeOSReleaseDirVolumePath, apicommon.SystemProbeOSReleaseDirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&osReleaseVolMount, apicommonv1.SystemProbeContainerName) + volMountMgr.AddVolumeMountToContainer(&osReleaseVolMount, apicommon.SystemProbeContainerName) volMgr.AddVolume(&osReleaseVol) // hostroot volume mount hostrootVol, hostrootVolMount := volume.GetVolumes(apicommon.HostRootVolumeName, apicommon.HostRootHostPath, apicommon.HostRootMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostrootVolMount, apicommonv1.SecurityAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostrootVolMount, apicommon.SecurityAgentContainerName) volMgr.AddVolume(&hostrootVol) // Custom policies are copied and merged with default policies via a workaround in the init-volume container. @@ -332,7 +331,7 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi } } // Mount custom policies to init-volume container. - managers.VolumeMount().AddVolumeMountToInitContainer(&volMount, apicommonv1.InitVolumeContainerName) + managers.VolumeMount().AddVolumeMountToInitContainer(&volMount, apicommon.InitVolumeContainerName) managers.Volume().AddVolume(&vol) // Add workaround command to init-volume container @@ -345,11 +344,11 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi } // Add policies directory envvar to Security Agent, and empty volume to System Probe and Security Agent. - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SecurityAgentContainerName, policiesDirEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SecurityAgentContainerName, policiesDirEnvVar) policiesVol, policiesVolMount := volume.GetVolumesEmptyDir(apicommon.SecurityAgentRuntimePoliciesDirVolumeName, apicommon.SecurityAgentRuntimePoliciesDirVolumePath, true) volMgr.AddVolume(&policiesVol) - volMountMgr.AddVolumeMountToContainers(&policiesVolMount, []apicommonv1.AgentContainerName{apicommonv1.SecurityAgentContainerName, apicommonv1.SystemProbeContainerName}) + volMountMgr.AddVolumeMountToContainers(&policiesVolMount, []apicommon.AgentContainerName{apicommon.SecurityAgentContainerName, apicommon.SystemProbeContainerName}) // Add runtime-security.d volume mount to init-volume container at different path policiesVolMountInitVol := corev1.VolumeMount{ @@ -357,7 +356,7 @@ func (f *cwsFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi MountPath: "/opt/datadog-agent/runtime-security.d", ReadOnly: false, } - volMountMgr.AddVolumeMountToInitContainer(&policiesVolMountInitVol, apicommonv1.InitVolumeContainerName) + volMountMgr.AddVolumeMountToInitContainer(&policiesVolMountInitVol, apicommon.InitVolumeContainerName) } return nil diff --git a/internal/controller/datadogagent/feature/cws/feature_test.go b/internal/controller/datadogagent/feature/cws/feature_test.go index 879cb4e0e..ee078ddcb 100644 --- a/internal/controller/datadogagent/feature/cws/feature_test.go +++ b/internal/controller/datadogagent/feature/cws/feature_test.go @@ -14,7 +14,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -42,7 +41,7 @@ func Test_cwsFeature_Configure(t *testing.T) { { ddaCWSLiteEnabled.Spec.Features.CWS.Enabled = apiutils.NewBoolPointer(true) ddaCWSLiteEnabled.Spec.Features.CWS.CustomPolicies = &v2alpha1.CustomConfig{ - ConfigMap: &apicommonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom_test", Items: []corev1.KeyToPath{ { @@ -64,7 +63,7 @@ func Test_cwsFeature_Configure(t *testing.T) { Enabled: apiutils.NewBoolPointer(true), } ddaCWSFullEnabled.Spec.Features.CWS.CustomPolicies = &v2alpha1.CustomConfig{ - ConfigMap: &apicommonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom_test", Items: []corev1.KeyToPath{ { @@ -107,7 +106,7 @@ func cwsAgentNodeWantFunc(withSubFeatures bool) *test.ComponentTest { mgr := mgrInterface.(*fake.PodTemplateManagers) // check security context capabilities - sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommonv1.SystemProbeContainerName] + sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe()), "System Probe security context capabilities \ndiff = %s", cmp.Diff(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe())) securityWant := []*corev1.EnvVar{ @@ -171,9 +170,9 @@ func cwsAgentNodeWantFunc(withSubFeatures bool) *test.ComponentTest { }, ) - securityAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SecurityAgentContainerName] + securityAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SecurityAgentContainerName] assert.True(t, apiutils.IsEqualStruct(securityAgentEnvVars, securityWant), "Security agent envvars \ndiff = %s", cmp.Diff(securityAgentEnvVars, securityWant)) - sysProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + sysProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeEnvVars, sysProbeWant), "System probe envvars \ndiff = %s", cmp.Diff(sysProbeEnvVars, sysProbeWant)) // check volume mounts @@ -242,9 +241,9 @@ func cwsAgentNodeWantFunc(withSubFeatures bool) *test.ComponentTest { }, } - securityAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SecurityAgentContainerName] + securityAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SecurityAgentContainerName] assert.True(t, apiutils.IsEqualStruct(securityAgentVolumeMounts, securityWantVolumeMount), "Security Agent volume mounts \ndiff = %s", cmp.Diff(securityAgentVolumeMounts, securityWantVolumeMount)) - sysProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] + sysProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeVolumeMounts, sysprobeWantVolumeMount), "System probe volume mounts \ndiff = %s", cmp.Diff(sysProbeVolumeMounts, sysprobeWantVolumeMount)) // check volumes @@ -342,8 +341,8 @@ func cwsAgentNodeWantFunc(withSubFeatures bool) *test.ComponentTest { assert.True(t, apiutils.IsEqualStruct(volumes, wantVolumes), "Volumes \ndiff = %s", cmp.Diff(volumes, wantVolumes)) // check annotations - customConfig := &apicommonv1.CustomConfig{ - ConfigMap: &apicommonv1.ConfigMapConfig{ + customConfig := &v2alpha1.CustomConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom_test", Items: []corev1.KeyToPath{ { diff --git a/internal/controller/datadogagent/feature/dogstatsd/feature.go b/internal/controller/datadogagent/feature/dogstatsd/feature.go index 82a9654ea..976667919 100644 --- a/internal/controller/datadogagent/feature/dogstatsd/feature.go +++ b/internal/controller/datadogagent/feature/dogstatsd/feature.go @@ -14,7 +14,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -46,7 +45,7 @@ type dogstatsdFeature struct { useHostNetwork bool originDetectionEnabled bool tagCardinality string - mapperProfiles *apicommonv1.CustomConfig + mapperProfiles *v2alpha1.CustomConfig forceEnableLocalService bool localServiceName string @@ -80,7 +79,7 @@ func (f *dogstatsdFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp featur } f.useHostNetwork = v2alpha1.IsHostNetworkEnabled(dda, v2alpha1.NodeAgentComponentName) if dogstatsd.MapperProfiles != nil { - f.mapperProfiles = v2alpha1.ConvertCustomConfig(dogstatsd.MapperProfiles) + f.mapperProfiles = dogstatsd.MapperProfiles } if dda.Spec.Global.LocalService != nil { @@ -91,8 +90,8 @@ func (f *dogstatsdFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp featur reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, }, }, } @@ -136,18 +135,18 @@ func (f *dogstatsdFeature) ManageClusterAgent(managers feature.PodTemplateManage // if SingleContainerStrategy is enabled and can be used with the configured feature set. // It should do nothing if the feature doesn't need to configure it. func (f *dogstatsdFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } // ManageNodeAgent allows a feature to configure the Node Agent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *dogstatsdFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.CoreAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.CoreAgentContainerName, managers, provider) return nil } -func (f *dogstatsdFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *dogstatsdFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { // udp dogstatsdPort := &corev1.ContainerPort{ Name: apicommon.DefaultDogstatsdPortName, @@ -209,7 +208,7 @@ func (f *dogstatsdFeature) manageNodeAgent(agentContainerName apicommonv1.AgentC // Tag cardinality is only configured if origin detection is enabled. // The value validation happens at the Agent level - if the lower(string) is not `low`, `orchestrator` or `high`, the Agent defaults to `low`. if f.tagCardinality != "" { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDDogstatsdTagCardinality, Value: f.tagCardinality, }) @@ -220,7 +219,7 @@ func (f *dogstatsdFeature) manageNodeAgent(agentContainerName apicommonv1.AgentC if f.mapperProfiles != nil { // configdata if f.mapperProfiles.ConfigData != nil { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDDogstatsdMapperProfiles, Value: apiutils.YAMLToJSONString(*f.mapperProfiles.ConfigData), }) @@ -232,7 +231,7 @@ func (f *dogstatsdFeature) manageNodeAgent(agentContainerName apicommonv1.AgentC cmSelector := corev1.ConfigMapKeySelector{} cmSelector.Name = f.mapperProfiles.ConfigMap.Name cmSelector.Key = f.mapperProfiles.ConfigMap.Items[0].Key - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDDogstatsdMapperProfiles, ValueFrom: &corev1.EnvVarSource{ConfigMapKeyRef: &cmSelector}, }) diff --git a/internal/controller/datadogagent/feature/dogstatsd/feature_test.go b/internal/controller/datadogagent/feature/dogstatsd/feature_test.go index ffca688ef..7c176d067 100644 --- a/internal/controller/datadogagent/feature/dogstatsd/feature_test.go +++ b/internal/controller/datadogagent/feature/dogstatsd/feature_test.go @@ -10,7 +10,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -408,18 +407,18 @@ func getWantVolumeMounts() []*corev1.VolumeMount { func assertWants(t testing.TB, mgrInterface feature.PodTemplateManagers, testId string, wantVolumeMounts []*corev1.VolumeMount, wantVolumes []*corev1.Volume, wantEnvVars []*corev1.EnvVar, wantUDSEnvVars []*corev1.EnvVar, wantContainerPorts []*corev1.ContainerPort) { mgr := mgrInterface.(*fake.PodTemplateManagers) - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentVolumeMounts, wantVolumeMounts), "%s. Volume mounts \ndiff = %s", testId, cmp.Diff(coreAgentVolumeMounts, wantVolumeMounts)) volumes := mgr.VolumeMgr.Volumes assert.True(t, apiutils.IsEqualStruct(volumes, wantVolumes), "%s. Volumes \ndiff = %s", testId, cmp.Diff(volumes, wantVolumes)) - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, wantEnvVars), "%s. Agent Container envvars \ndiff = %s", testId, cmp.Diff(agentEnvVars, wantEnvVars)) - allEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + allEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] assert.True(t, apiutils.IsEqualStruct(allEnvVars, wantUDSEnvVars), "%s. All Containers envvars \ndiff = %s", testId, cmp.Diff(allEnvVars, wantUDSEnvVars)) - coreAgentPorts := mgr.PortMgr.PortsByC[apicommonv1.CoreAgentContainerName] + coreAgentPorts := mgr.PortMgr.PortsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentPorts, wantContainerPorts), "%s. Agent ports \ndiff = %s", testId, cmp.Diff(coreAgentPorts, wantContainerPorts)) } diff --git a/internal/controller/datadogagent/feature/ebpfcheck/feature.go b/internal/controller/datadogagent/feature/ebpfcheck/feature.go index 247fed23c..5373a49a9 100644 --- a/internal/controller/datadogagent/feature/ebpfcheck/feature.go +++ b/internal/controller/datadogagent/feature/ebpfcheck/feature.go @@ -4,7 +4,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/agent" @@ -37,7 +36,7 @@ func (f *ebpfCheckFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp featur if dda.Spec.Features != nil && dda.Spec.Features.EBPFCheck != nil && apiutils.BoolValue(dda.Spec.Features.EBPFCheck.Enabled) { reqComp.Agent = feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + Containers: []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, } } @@ -60,20 +59,20 @@ func (f *ebpfCheckFeature) ManageClusterAgent(managers feature.PodTemplateManage // It should do nothing if the feature doesn't need to configure it. func (f *ebpfCheckFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { // security context capabilities - managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName) // debugfs volume mount debugfsVol, debugfsVolMount := volume.GetVolumes(apicommon.DebugfsVolumeName, apicommon.DebugfsPath, apicommon.DebugfsPath, false) managers.Volume().AddVolume(&debugfsVol) - managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommonv1.AgentContainerName{apicommonv1.SystemProbeContainerName}) + managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommon.AgentContainerName{apicommon.SystemProbeContainerName}) // socket volume mount (needs write perms for the system probe container but not the others) socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false) managers.Volume().AddVolume(&socketVol) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommon.SystemProbeContainerName) _, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommonv1.CoreAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommon.CoreAgentContainerName) // env vars enableEnvVar := &corev1.EnvVar{ @@ -81,16 +80,16 @@ func (f *ebpfCheckFeature) ManageNodeAgent(managers feature.PodTemplateManagers, Value: "true", } - managers.EnvVar().AddEnvVarToContainers([]apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, enableEnvVar) - managers.EnvVar().AddEnvVarToInitContainer(apicommonv1.InitConfigContainerName, enableEnvVar) + managers.EnvVar().AddEnvVarToContainers([]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, enableEnvVar) + managers.EnvVar().AddEnvVarToInitContainer(apicommon.InitConfigContainerName, enableEnvVar) socketEnvVar := &corev1.EnvVar{ Name: apicommon.DDSystemProbeSocket, Value: apicommon.DefaultSystemProbeSocketPath, } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, socketEnvVar) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.SystemProbeContainerName, socketEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, socketEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.SystemProbeContainerName, socketEnvVar) return nil } diff --git a/internal/controller/datadogagent/feature/ebpfcheck/feature_test.go b/internal/controller/datadogagent/feature/ebpfcheck/feature_test.go index 5b27d83e8..cba86aa60 100644 --- a/internal/controller/datadogagent/feature/ebpfcheck/feature_test.go +++ b/internal/controller/datadogagent/feature/ebpfcheck/feature_test.go @@ -8,7 +8,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/agent" @@ -36,7 +35,7 @@ func Test_ebpfCheckFeature_Configure(t *testing.T) { mgr := mgrInterface.(*fake.PodTemplateManagers) // check security context capabilities - sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommonv1.SystemProbeContainerName] + sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommon.SystemProbeContainerName] assert.True( t, apiutils.IsEqualStruct(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe()), @@ -66,10 +65,10 @@ func Test_ebpfCheckFeature_Configure(t *testing.T) { }, } - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentVolumeMounts, wantCoreAgentVolMounts), "Core agent volume mounts \ndiff = %s", cmp.Diff(coreAgentVolumeMounts, wantCoreAgentVolMounts)) - systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] + systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeVolumeMounts, wantSystemProbeVolMounts), "System Probe volume mounts \ndiff = %s", cmp.Diff(systemProbeVolumeMounts, wantSystemProbeVolMounts)) // check volumes @@ -104,10 +103,10 @@ func Test_ebpfCheckFeature_Configure(t *testing.T) { Value: apicommon.DefaultSystemProbeSocketPath, }, } - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, wantEnvVars), "Agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, wantEnvVars)) - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeEnvVars, wantEnvVars), "System Probe envvars \ndiff = %s", cmp.Diff(systemProbeEnvVars, wantEnvVars)) } diff --git a/internal/controller/datadogagent/feature/enabledefault/feature.go b/internal/controller/datadogagent/feature/enabledefault/feature.go index be01408d8..b2c1f54fa 100644 --- a/internal/controller/datadogagent/feature/enabledefault/feature.go +++ b/internal/controller/datadogagent/feature/enabledefault/feature.go @@ -10,7 +10,6 @@ import ( "os" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -194,8 +193,8 @@ func (f *defaultFeature) Configure(dda *v2alpha1.DatadogAgent) feature.RequiredC }, Agent: feature.RequiredComponent{ IsRequired: &trueValue, - Containers: []commonv1.AgentContainerName{ - commonv1.OtelAgent, + Containers: []apicommon.AgentContainerName{ + apicommon.OtelAgent, }, }, } @@ -282,7 +281,7 @@ func (f *defaultFeature) agentDependencies(managers feature.ResourceManagers, re // Create a configmap for the default seccomp profile in the System Probe. // This is mounted in the init-volume container in the agent default code. for _, containerName := range requiredComponent.Containers { - if containerName == commonv1.SystemProbeContainerName { + if containerName == apicommon.SystemProbeContainerName { errs = append(errs, managers.ConfigMapManager().AddConfigMap( common.GetDefaultSeccompConfigMapName(f.owner), f.owner.GetNamespace(), diff --git a/internal/controller/datadogagent/feature/enabledefault/feature_test.go b/internal/controller/datadogagent/feature/enabledefault/feature_test.go index 1fa4d8ecd..c6f756e96 100644 --- a/internal/controller/datadogagent/feature/enabledefault/feature_test.go +++ b/internal/controller/datadogagent/feature/enabledefault/feature_test.go @@ -16,7 +16,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature/fake" @@ -86,7 +85,7 @@ func Test_defaultFeature_ManageClusterAgent(t *testing.T) { func defaultFeatureManageClusterAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] want := &corev1.EnvVar{ Name: apicommon.DDClusterAgentServiceAccountName, diff --git a/internal/controller/datadogagent/feature/eventcollection/feature.go b/internal/controller/datadogagent/feature/eventcollection/feature.go index 1c8d844c5..f7fdb2548 100644 --- a/internal/controller/datadogagent/feature/eventcollection/feature.go +++ b/internal/controller/datadogagent/feature/eventcollection/feature.go @@ -16,7 +16,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" common "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object" @@ -75,7 +74,7 @@ func (f *eventCollectionFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp if apiutils.BoolValue(dda.Spec.Features.EventCollection.UnbundleEvents) { if len(dda.Spec.Features.EventCollection.CollectedEventTypes) > 0 { - f.configMapName = apicommonv1.GetConfName(dda, nil, apicommon.DefaultKubeAPIServerConf) + f.configMapName = v2alpha1.GetConfName(dda, nil, apicommon.DefaultKubeAPIServerConf) f.unbundleEvents = *dda.Spec.Features.EventCollection.UnbundleEvents f.unbundleEventTypes = dda.Spec.Features.EventCollection.CollectedEventTypes } else { @@ -143,22 +142,22 @@ func (f *eventCollectionFeature) ManageDependencies(managers feature.ResourceMan // It should do nothing if the feature doesn't need to configure it. func (f *eventCollectionFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { // Env vars - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDCollectKubernetesEvents, Value: "true", }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDLeaderElection, Value: "true", }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDLeaderLeaseName, Value: utils.GetDatadogLeaderElectionResourceName(f.owner), }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDClusterAgentTokenName, Value: v2alpha1.GetDefaultDCATokenSecretName(f.owner), }) @@ -172,7 +171,7 @@ func (f *eventCollectionFeature) ManageClusterAgent(managers feature.PodTemplate ReadOnly: true, } - managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommonv1.ClusterAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.ClusterAgentContainerName) managers.Volume().AddVolume(&vol) // Add md5 hash annotation for configMap @@ -188,18 +187,18 @@ func (f *eventCollectionFeature) ManageClusterAgent(managers feature.PodTemplate // if SingleContainerStrategy is enabled and can be used with the configured feature set. // It should do nothing if the feature doesn't need to configure it. func (f *eventCollectionFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } // ManageNodeAgent allows a feature to configure the Node Agent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *eventCollectionFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.CoreAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.CoreAgentContainerName, managers, provider) return nil } -func (f *eventCollectionFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, _ string) error { +func (f *eventCollectionFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, _ string) error { managers.EnvVar().AddEnvVarToContainer(agentContainerName, &corev1.EnvVar{ Name: apicommon.DDCollectKubernetesEvents, Value: "true", diff --git a/internal/controller/datadogagent/feature/eventcollection/feature_test.go b/internal/controller/datadogagent/feature/eventcollection/feature_test.go index c682668dc..256989635 100644 --- a/internal/controller/datadogagent/feature/eventcollection/feature_test.go +++ b/internal/controller/datadogagent/feature/eventcollection/feature_test.go @@ -11,7 +11,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -70,7 +69,7 @@ func Test_eventCollectionFeature_Configure(t *testing.T) { func eventCollectionClusterAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + dcaEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] want := []*corev1.EnvVar{ { @@ -141,7 +140,7 @@ func unbundledEventsClusterAgentWantFunc(t testing.TB, mgrInterface feature.PodT } assert.True(t, apiutils.IsEqualStruct(mgr.VolumeMgr.Volumes, expectedVolumes), "DCA volumes \ndiff = %s", cmp.Diff(mgr.VolumeMgr.Volumes, expectedVolumes)) - volumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ClusterAgentContainerName] + volumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ClusterAgentContainerName] expectedVolumeMounts := []*corev1.VolumeMount{ { Name: "kubernetes-apiserver-check-config", diff --git a/internal/controller/datadogagent/feature/externalmetrics/feature.go b/internal/controller/datadogagent/feature/externalmetrics/feature.go index 0f6d517c0..e838723f8 100644 --- a/internal/controller/datadogagent/feature/externalmetrics/feature.go +++ b/internal/controller/datadogagent/feature/externalmetrics/feature.go @@ -10,7 +10,6 @@ import ( "strconv" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -260,25 +259,25 @@ func (f *externalMetricsFeature) ManageDependencies(managers feature.ResourceMan // ManageClusterAgent allows a feature to configure the ClusterAgent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *externalMetricsFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExternalMetricsProviderEnabled, Value: "true", }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExternalMetricsProviderPort, Value: strconv.FormatInt(int64(f.port), 10), }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExternalMetricsProviderUseDatadogMetric, Value: apiutils.BoolToString(&f.useDDM), }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExternalMetricsProviderWPAController, Value: apiutils.BoolToString(&f.useWPA), }) if f.url != "" { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDExternalMetricsProviderEndpoint, Value: f.url, }) @@ -301,7 +300,7 @@ func (f *externalMetricsFeature) ManageClusterAgent(managers feature.PodTemplate common.BuildEnvVarFromSecret(componentdca.GetDefaultExternalMetricSecretName(f.owner), apicommon.DefaultAPIKeyKey), ) } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, apiKeyEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, apiKeyEnvVar) } // app key if s, ok := f.keySecret[apicommon.DefaultAPPKeyKey]; ok { @@ -319,11 +318,11 @@ func (f *externalMetricsFeature) ManageClusterAgent(managers feature.PodTemplate common.BuildEnvVarFromSecret(componentdca.GetDefaultExternalMetricSecretName(f.owner), apicommon.DefaultAPPKeyKey), ) } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, appKeyEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, appKeyEnvVar) } } - managers.Port().AddPortToContainer(apicommonv1.ClusterAgentContainerName, &corev1.ContainerPort{ + managers.Port().AddPortToContainer(apicommon.ClusterAgentContainerName, &corev1.ContainerPort{ Name: apicommon.ExternalMetricsPortName, ContainerPort: f.port, Protocol: corev1.ProtocolTCP, diff --git a/internal/controller/datadogagent/feature/externalmetrics/feature_test.go b/internal/controller/datadogagent/feature/externalmetrics/feature_test.go index efbc240a5..6b1ea3d70 100644 --- a/internal/controller/datadogagent/feature/externalmetrics/feature_test.go +++ b/internal/controller/datadogagent/feature/externalmetrics/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" @@ -32,7 +31,7 @@ func TestExternalMetricsFeature(t *testing.T) { secret := v2alpha1.DatadogCredentials{ APIKey: apiutils.NewStringPointer("12345"), - APISecret: &apicommonv1.SecretConfig{ + APISecret: &v2alpha1.SecretConfig{ SecretName: secretName, KeyName: apiKeyName, }, @@ -128,7 +127,7 @@ func testDCAResources(useDDM, wpaController, keySecrets bool) *test.ComponentTes func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterAgentContainerName] expectedAgentEnvs := []*corev1.EnvVar{ { Name: apicommon.DDExternalMetricsProviderEnabled, @@ -180,7 +179,7 @@ func testDCAResources(useDDM, wpaController, keySecrets bool) *test.ComponentTes "Cluster Agent ENVs \ndiff = %s", cmp.Diff(agentEnvs, expectedAgentEnvs), ) - agentPorts := mgr.PortMgr.PortsByC[apicommonv1.ClusterAgentContainerName] + agentPorts := mgr.PortMgr.PortsByC[apicommon.ClusterAgentContainerName] expectedPorts := []*corev1.ContainerPort{ { Name: "metricsapi", diff --git a/internal/controller/datadogagent/feature/factory.go b/internal/controller/datadogagent/feature/factory.go index 0bdf1ddf6..c4fac2183 100644 --- a/internal/controller/datadogagent/feature/factory.go +++ b/internal/controller/datadogagent/feature/factory.go @@ -10,7 +10,7 @@ import ( "sort" "sync" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" ) diff --git a/internal/controller/datadogagent/feature/helmcheck/feature.go b/internal/controller/datadogagent/feature/helmcheck/feature.go index 1a0e34d00..e1acfcc6a 100644 --- a/internal/controller/datadogagent/feature/helmcheck/feature.go +++ b/internal/controller/datadogagent/feature/helmcheck/feature.go @@ -13,7 +13,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" @@ -141,7 +140,7 @@ func (f *helmCheckFeature) ManageClusterAgent(managers feature.PodTemplateManage ReadOnly: true, } - managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommonv1.ClusterAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.ClusterAgentContainerName) managers.Volume().AddVolume(&vol) // Add md5 hash annotation for configMap diff --git a/internal/controller/datadogagent/feature/helmcheck/feature_test.go b/internal/controller/datadogagent/feature/helmcheck/feature_test.go index 09db01037..ed7bbfd62 100644 --- a/internal/controller/datadogagent/feature/helmcheck/feature_test.go +++ b/internal/controller/datadogagent/feature/helmcheck/feature_test.go @@ -17,7 +17,6 @@ import ( rbacv1 "k8s.io/api/rbac/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" @@ -170,7 +169,7 @@ func helmCheckWantResourcesFunc(ccr bool, collectEvents bool) *test.ComponentTes }, } - dcaVolMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ClusterAgentContainerName] + dcaVolMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ClusterAgentContainerName] assert.True( t, diff --git a/internal/controller/datadogagent/feature/kubernetesstatecore/configmap_test.go b/internal/controller/datadogagent/feature/kubernetesstatecore/configmap_test.go index 9a73f0ac1..f5dff375f 100644 --- a/internal/controller/datadogagent/feature/kubernetesstatecore/configmap_test.go +++ b/internal/controller/datadogagent/feature/kubernetesstatecore/configmap_test.go @@ -10,7 +10,8 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -37,7 +38,7 @@ instances: rbacSuffix string serviceAccountName string owner metav1.Object - customConfig *apicommonv1.CustomConfig + customConfig *v2alpha1.CustomConfig configConfigMapName string collectorOpts collectorOptions } @@ -64,7 +65,7 @@ instances: enable: true, runInClusterChecksRunner: true, configConfigMapName: apicommon.DefaultKubeStateMetricsCoreConf, - customConfig: &apicommonv1.CustomConfig{ + customConfig: &v2alpha1.CustomConfig{ ConfigData: &overrideConf, }, }, diff --git a/internal/controller/datadogagent/feature/kubernetesstatecore/feature.go b/internal/controller/datadogagent/feature/kubernetesstatecore/feature.go index 6ec979508..6c1c68c39 100644 --- a/internal/controller/datadogagent/feature/kubernetesstatecore/feature.go +++ b/internal/controller/datadogagent/feature/kubernetesstatecore/feature.go @@ -14,7 +14,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/pkg/controller/utils/comparison" @@ -56,7 +55,7 @@ type ksmFeature struct { serviceAccountName string owner metav1.Object - customConfig *apicommonv1.CustomConfig + customConfig *v2alpha1.CustomConfig configConfigMapName string customConfigAnnotationKey string customConfigAnnotationValue string @@ -109,7 +108,7 @@ func (f *ksmFeature) Configure(dda *v2alpha1.DatadogAgent) feature.RequiredCompo } if dda.Spec.Features.KubeStateMetricsCore.Conf != nil { - f.customConfig = v2alpha1.ConvertCustomConfig(dda.Spec.Features.KubeStateMetricsCore.Conf) + f.customConfig = dda.Spec.Features.KubeStateMetricsCore.Conf hash, err := comparison.GenerateMD5ForSpec(f.customConfig) if err != nil { f.logger.Error(err, "couldn't generate hash for ksm core custom config") @@ -120,7 +119,7 @@ func (f *ksmFeature) Configure(dda *v2alpha1.DatadogAgent) feature.RequiredCompo f.customConfigAnnotationKey = object.GetChecksumAnnotationKey(feature.KubernetesStateCoreIDType) } - f.configConfigMapName = apicommonv1.GetConfName(dda, f.customConfig, apicommon.DefaultKubeStateMetricsCoreConf) + f.configConfigMapName = v2alpha1.GetConfName(dda, f.customConfig, apicommon.DefaultKubeStateMetricsCoreConf) } return output @@ -190,7 +189,7 @@ func (f *ksmFeature) ManageClusterAgent(managers feature.PodTemplateManagers) er if f.customConfigAnnotationKey != "" && f.customConfigAnnotationValue != "" { managers.Annotation().AddAnnotation(f.customConfigAnnotationKey, f.customConfigAnnotationValue) } - managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommonv1.ClusterAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.ClusterAgentContainerName) managers.Volume().AddVolume(&vol) managers.EnvVar().AddEnvVar(&corev1.EnvVar{ @@ -216,7 +215,7 @@ func (f *ksmFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplate Value: "kubernetes_state", } - return managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommonv1.UnprivilegedSingleAgentContainerName, ignoreAutoConf, merger.AppendToValueEnvVarMergeFunction) + return managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommon.UnprivilegedSingleAgentContainerName, ignoreAutoConf, merger.AppendToValueEnvVarMergeFunction) } // ManageNodeAgent allows a feature to configure the Node Agent's corev1.PodTemplateSpec @@ -228,7 +227,7 @@ func (f *ksmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Value: "kubernetes_state", } - return managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommonv1.CoreAgentContainerName, ignoreAutoConf, merger.AppendToValueEnvVarMergeFunction) + return managers.EnvVar().AddEnvVarToContainerWithMergeFunc(apicommon.CoreAgentContainerName, ignoreAutoConf, merger.AppendToValueEnvVarMergeFunction) } // ManageClusterChecksRunner allows a feature to configure the ClusterChecksRunnerAgent's corev1.PodTemplateSpec diff --git a/internal/controller/datadogagent/feature/kubernetesstatecore/feature_test.go b/internal/controller/datadogagent/feature/kubernetesstatecore/feature_test.go index e5ad09bc4..207ad0971 100644 --- a/internal/controller/datadogagent/feature/kubernetesstatecore/feature_test.go +++ b/internal/controller/datadogagent/feature/kubernetesstatecore/feature_test.go @@ -10,7 +10,7 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -113,7 +113,7 @@ func ksmClusterAgentWantFunc(hasCustomConfig bool) *test.ComponentTest { assert.True(t, apiutils.IsEqualStruct(dcaEnvVars, want), "DCA envvars \ndiff = %s", cmp.Diff(dcaEnvVars, want)) if hasCustomConfig { - customConfig := apicommonv1.CustomConfig{ + customConfig := v2alpha1.CustomConfig{ ConfigData: apiutils.NewStringPointer(customData), } hash, err := comparison.GenerateMD5ForSpec(&customConfig) @@ -129,14 +129,14 @@ func ksmClusterAgentWantFunc(hasCustomConfig bool) *test.ComponentTest { } func ksmAgentNodeWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { - ksmAgentWantFunc(t, mgrInterface, apicommonv1.CoreAgentContainerName) + ksmAgentWantFunc(t, mgrInterface, apicommon.CoreAgentContainerName) } func ksmAgentSingleAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { - ksmAgentWantFunc(t, mgrInterface, apicommonv1.UnprivilegedSingleAgentContainerName) + ksmAgentWantFunc(t, mgrInterface, apicommon.UnprivilegedSingleAgentContainerName) } -func ksmAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers, agentContainerName apicommonv1.AgentContainerName) { +func ksmAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers, agentContainerName apicommon.AgentContainerName) { mgr := mgrInterface.(*fake.PodTemplateManagers) agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[agentContainerName] diff --git a/internal/controller/datadogagent/feature/livecontainer/feature.go b/internal/controller/datadogagent/feature/livecontainer/feature.go index 6d841fc2b..a5e82ff48 100644 --- a/internal/controller/datadogagent/feature/livecontainer/feature.go +++ b/internal/controller/datadogagent/feature/livecontainer/feature.go @@ -12,7 +12,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" featutils "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" @@ -47,14 +46,14 @@ func (f *liveContainerFeature) ID() feature.IDType { // Configure is used to configure the feature from a v2alpha1.DatadogAgent instance. func (f *liveContainerFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.RequiredComponents) { if dda.Spec.Features.LiveContainerCollection != nil && apiutils.BoolValue(dda.Spec.Features.LiveContainerCollection.Enabled) { - reqContainers := []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + reqContainers := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, } f.runInCoreAgent = featutils.OverrideRunInCoreAgent(dda, f.runInCoreAgent) if !f.runInCoreAgent { - reqContainers = append(reqContainers, apicommonv1.ProcessAgentContainerName) + reqContainers = append(reqContainers, apicommon.ProcessAgentContainerName) } reqComp = feature.RequiredComponents{ @@ -88,8 +87,8 @@ func (f *liveContainerFeature) ManageSingleContainerNodeAgent(managers feature.P Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&f.runInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, runInCoreAgentEnvVar) - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + managers.EnvVar().AddEnvVarToContainer(apicommon.UnprivilegedSingleAgentContainerName, runInCoreAgentEnvVar) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } @@ -101,18 +100,18 @@ func (f *liveContainerFeature) ManageNodeAgent(managers feature.PodTemplateManag Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&f.runInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, runInCoreAgentEnvVar) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, runInCoreAgentEnvVar) - containerName := apicommonv1.CoreAgentContainerName + containerName := apicommon.CoreAgentContainerName if !f.runInCoreAgent { - containerName = apicommonv1.ProcessAgentContainerName + containerName = apicommon.ProcessAgentContainerName } f.manageNodeAgent(containerName, managers, provider) return nil } -func (f *liveContainerFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *liveContainerFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { // cgroups volume mount cgroupsVol, cgroupsVolMount := volume.GetVolumes(apicommon.CgroupsVolumeName, apicommon.CgroupsHostPath, apicommon.CgroupsMountPath, true) diff --git a/internal/controller/datadogagent/feature/livecontainer/feature_test.go b/internal/controller/datadogagent/feature/livecontainer/feature_test.go index 960dfa0b9..8b02bc2d8 100644 --- a/internal/controller/datadogagent/feature/livecontainer/feature_test.go +++ b/internal/controller/datadogagent/feature/livecontainer/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/DataDog/datadog-operator/api/utils" @@ -31,7 +30,7 @@ func TestLiveContainerFeature(t *testing.T) { WithLiveContainerCollectionEnabled(true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, { Name: "live container collection enabled with single container", @@ -40,7 +39,7 @@ func TestLiveContainerFeature(t *testing.T) { WithSingleContainerStrategy(true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.UnprivilegedSingleAgentContainerName, false), + Agent: testExpectedAgent(apicommon.UnprivilegedSingleAgentContainerName, false), }, { Name: "live container collection enabled on core agent via env var", @@ -49,13 +48,13 @@ func TestLiveContainerFeature(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "true"}}, }, ). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.CoreAgentContainerName, true), + Agent: testExpectedAgent(apicommon.CoreAgentContainerName, true), }, { Name: "live container collection enabled on core agent via option", @@ -64,13 +63,13 @@ func TestLiveContainerFeature(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, }, ). Build(), FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.CoreAgentContainerName, true), + Agent: testExpectedAgent(apicommon.CoreAgentContainerName, true), }, { Name: "live container collection enabled in core agent via option without min version", @@ -79,13 +78,13 @@ func TestLiveContainerFeature(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.52.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.52.0"}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, { Name: "live container collection disabled on core agent via env var override", @@ -94,21 +93,21 @@ func TestLiveContainerFeature(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "false"}}, }, ). Build(), FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, } tests.Run(t, buildLiveContainerFeature) } -func testExpectedAgent(agentContainerName apicommonv1.AgentContainerName, runInCoreAgent bool) *test.ComponentTest { +func testExpectedAgent(agentContainerName apicommon.AgentContainerName, runInCoreAgent bool) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) diff --git a/internal/controller/datadogagent/feature/liveprocess/feature.go b/internal/controller/datadogagent/feature/liveprocess/feature.go index 9263e8d6a..265547483 100644 --- a/internal/controller/datadogagent/feature/liveprocess/feature.go +++ b/internal/controller/datadogagent/feature/liveprocess/feature.go @@ -12,7 +12,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" featutils "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" @@ -56,14 +55,14 @@ func (f *liveProcessFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feat f.stripArgs = apiutils.NewBoolPointer(*dda.Spec.Features.LiveProcessCollection.StripProcessArguments) } - reqContainers := []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + reqContainers := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, } f.runInCoreAgent = featutils.OverrideRunInCoreAgent(dda, f.runInCoreAgent) if !f.runInCoreAgent { - reqContainers = append(reqContainers, apicommonv1.ProcessAgentContainerName) + reqContainers = append(reqContainers, apicommon.ProcessAgentContainerName) } reqComp = feature.RequiredComponents{ @@ -97,8 +96,8 @@ func (f *liveProcessFeature) ManageSingleContainerNodeAgent(managers feature.Pod Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&f.runInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, runInCoreAgentEnvVar) - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + managers.EnvVar().AddEnvVarToContainer(apicommon.UnprivilegedSingleAgentContainerName, runInCoreAgentEnvVar) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } @@ -110,18 +109,18 @@ func (f *liveProcessFeature) ManageNodeAgent(managers feature.PodTemplateManager Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&f.runInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, runInCoreAgentEnvVar) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, runInCoreAgentEnvVar) - containerName := apicommonv1.CoreAgentContainerName + containerName := apicommon.CoreAgentContainerName if !f.runInCoreAgent { - containerName = apicommonv1.ProcessAgentContainerName + containerName = apicommon.ProcessAgentContainerName } f.manageNodeAgent(containerName, managers, provider) return nil } -func (f *liveProcessFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *liveProcessFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { // passwd volume mount passwdVol, passwdVolMount := volume.GetVolumes(apicommon.PasswdVolumeName, apicommon.PasswdHostPath, apicommon.PasswdMountPath, true) diff --git a/internal/controller/datadogagent/feature/liveprocess/feature_test.go b/internal/controller/datadogagent/feature/liveprocess/feature_test.go index c14b7d7eb..eafad3c31 100644 --- a/internal/controller/datadogagent/feature/liveprocess/feature_test.go +++ b/internal/controller/datadogagent/feature/liveprocess/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/DataDog/datadog-operator/api/utils" @@ -38,7 +37,7 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithLiveProcessEnabled(true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false, false), }, { Name: "live process collection enabled with scrub and strip args", @@ -47,7 +46,7 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithLiveProcessScrubStrip(true, true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false, true), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false, true), }, { Name: "live process collection enabled in core agent via env vars", @@ -56,13 +55,13 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "true"}}, }, ). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.CoreAgentContainerName, true, false), + Agent: testExpectedAgent(apicommon.CoreAgentContainerName, true, false), }, { Name: "live process collection enabled in core agent via option", @@ -71,13 +70,13 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.CoreAgentContainerName, true, false), + Agent: testExpectedAgent(apicommon.CoreAgentContainerName, true, false), }, { Name: "live process collection enabled in core agent via option without min version", @@ -86,13 +85,13 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.52.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.52.0"}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false, false), }, { Name: "live process collection disabled in core agent via env var override", @@ -101,14 +100,14 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "false"}}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false, false), }, { Name: "live process collection enabled on single container", @@ -117,14 +116,14 @@ func Test_liveProcessFeature_Configure(t *testing.T) { WithSingleContainerStrategy(true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.UnprivilegedSingleAgentContainerName, false, false), + Agent: testExpectedAgent(apicommon.UnprivilegedSingleAgentContainerName, false, false), }, } tests.Run(t, buildLiveProcessFeature) } -func testExpectedAgent(agentContainerName apicommonv1.AgentContainerName, runInCoreAgent bool, ScrubStripArgs bool) *test.ComponentTest { +func testExpectedAgent(agentContainerName apicommon.AgentContainerName, runInCoreAgent bool, ScrubStripArgs bool) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) diff --git a/internal/controller/datadogagent/feature/logcollection/feature.go b/internal/controller/datadogagent/feature/logcollection/feature.go index 0e95370c0..0092424d9 100644 --- a/internal/controller/datadogagent/feature/logcollection/feature.go +++ b/internal/controller/datadogagent/feature/logcollection/feature.go @@ -14,7 +14,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" ) @@ -72,8 +71,8 @@ func (f *logCollectionFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp fe reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, }, }, } @@ -97,18 +96,18 @@ func (f *logCollectionFeature) ManageClusterAgent(managers feature.PodTemplateMa // if SingleContainerStrategy is enabled and can be used with the configured feature set. // It should do nothing if the feature doesn't need to configure it. func (f *logCollectionFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } // ManageNodeAgent allows a feature to configure the Node Agent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *logCollectionFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.CoreAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.CoreAgentContainerName, managers, provider) return nil } -func (f *logCollectionFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *logCollectionFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { // pointerdir volume mount pointerVol, pointerVolMount := volume.GetVolumes(apicommon.PointerVolumeName, f.tempStoragePath, apicommon.PointerVolumePath, false) managers.VolumeMount().AddVolumeMountToContainer(&pointerVolMount, agentContainerName) diff --git a/internal/controller/datadogagent/feature/logcollection/feature_test.go b/internal/controller/datadogagent/feature/logcollection/feature_test.go index 9b356ed61..072b3e28b 100644 --- a/internal/controller/datadogagent/feature/logcollection/feature_test.go +++ b/internal/controller/datadogagent/feature/logcollection/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -249,9 +248,9 @@ func createEnvVars(logsEnabled, collectAllEnabled, collectUsingFilesEnabled stri func assertWants(t testing.TB, mgrInterface feature.PodTemplateManagers, wantVolumeMounts []*corev1.VolumeMount, wantVolumes []*corev1.Volume, wantEnvVars []*corev1.EnvVar) { mgr := mgrInterface.(*fake.PodTemplateManagers) - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] volumes := mgr.VolumeMgr.Volumes - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentVolumeMounts, wantVolumeMounts), "Volume mounts \ndiff = %s", cmp.Diff(coreAgentVolumeMounts, wantVolumeMounts)) assert.True(t, apiutils.IsEqualStruct(volumes, wantVolumes), "Volumes \ndiff = %s", cmp.Diff(volumes, wantVolumes)) diff --git a/internal/controller/datadogagent/feature/npm/feature.go b/internal/controller/datadogagent/feature/npm/feature.go index 92ce0a9a0..a80d0103d 100644 --- a/internal/controller/datadogagent/feature/npm/feature.go +++ b/internal/controller/datadogagent/feature/npm/feature.go @@ -13,7 +13,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" ) @@ -51,10 +50,10 @@ func (f *npmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, - apicommonv1.SystemProbeContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.SystemProbeContainerName, }, }, } @@ -92,44 +91,44 @@ func (f *npmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi managers.Annotation().AddAnnotation(apicommon.SystemProbeAppArmorAnnotationKey, apicommon.SystemProbeAppArmorAnnotationValue) // security context capabilities - managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName) // procdir volume mount procdirVol, procdirVolMount := volume.GetVolumes(apicommon.ProcdirVolumeName, apicommon.ProcdirHostPath, apicommon.ProcdirMountPath, true) managers.Volume().AddVolume(&procdirVol) - managers.VolumeMount().AddVolumeMountToContainers(&procdirVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName}) + managers.VolumeMount().AddVolumeMountToContainers(&procdirVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName}) // cgroups volume mount cgroupsVol, cgroupsVolMount := volume.GetVolumes(apicommon.CgroupsVolumeName, apicommon.CgroupsHostPath, apicommon.CgroupsMountPath, true) managers.Volume().AddVolume(&cgroupsVol) - managers.VolumeMount().AddVolumeMountToContainers(&cgroupsVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName}) + managers.VolumeMount().AddVolumeMountToContainers(&cgroupsVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName}) // debugfs volume mount debugfsVol, debugfsVolMount := volume.GetVolumes(apicommon.DebugfsVolumeName, apicommon.DebugfsPath, apicommon.DebugfsPath, false) managers.Volume().AddVolume(&debugfsVol) - managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName}) + managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName}) // socket volume mount (needs write perms for the system probe container but not the others) socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false) managers.Volume().AddVolume(&socketVol) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommon.SystemProbeContainerName) _, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true) managers.VolumeMount().AddVolumeMountToContainers( &socketVolMountReadOnly, - []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, }, ) // env vars // env vars for Core Agent, Process Agent and System Probe - containersForEnvVars := []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, - apicommonv1.SystemProbeContainerName, + containersForEnvVars := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.SystemProbeContainerName, } enableEnvVar := &corev1.EnvVar{ @@ -154,20 +153,20 @@ func (f *npmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Name: apicommon.DDSystemProbeCollectDNSStatsEnabled, Value: apiutils.BoolToString(&f.collectDNSStats), } - managers.EnvVar().AddEnvVarToContainers([]apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, collectDNSStatsEnvVar) + managers.EnvVar().AddEnvVarToContainers([]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, collectDNSStatsEnvVar) connTrackEnvVar := &corev1.EnvVar{ Name: apicommon.DDSystemProbeConntrackEnabled, Value: apiutils.BoolToString(&f.enableConntrack), } - managers.EnvVar().AddEnvVarToContainers([]apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, connTrackEnvVar) + managers.EnvVar().AddEnvVarToContainers([]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, connTrackEnvVar) // env vars for Process Agent only sysProbeExternalEnvVar := &corev1.EnvVar{ Name: apicommon.DDSystemProbeExternal, Value: "true", } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, sysProbeExternalEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, sysProbeExternalEnvVar) return nil } diff --git a/internal/controller/datadogagent/feature/npm/feature_test.go b/internal/controller/datadogagent/feature/npm/feature_test.go index 5cc185563..67a683959 100644 --- a/internal/controller/datadogagent/feature/npm/feature_test.go +++ b/internal/controller/datadogagent/feature/npm/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/agent" @@ -64,7 +63,7 @@ func Test_npmFeature_Configure(t *testing.T) { Value: "false", }, } - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeEnvVars, sysProbeWantEnvVars), "4. System Probe envvars \ndiff = %s", cmp.Diff(systemProbeEnvVars, sysProbeWantEnvVars)) } @@ -78,7 +77,7 @@ func Test_npmFeature_Configure(t *testing.T) { assert.True(t, apiutils.IsEqualStruct(annotations, wantAnnotations), "Annotations \ndiff = %s", cmp.Diff(annotations, wantAnnotations)) // check security context capabilities - sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommonv1.SystemProbeContainerName] + sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe()), "System Probe security context capabilities \ndiff = %s", cmp.Diff(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe())) // check volume mounts @@ -112,10 +111,10 @@ func Test_npmFeature_Configure(t *testing.T) { ReadOnly: false, }) - processAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ProcessAgentContainerName] + processAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ProcessAgentContainerName] assert.True(t, apiutils.IsEqualStruct(processAgentMounts, wantProcessAgentVolMounts), "Process Agent volume mounts \ndiff = %s", cmp.Diff(processAgentMounts, wantProcessAgentVolMounts)) - sysProbeAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] + sysProbeAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeAgentMounts, wantSystemProbeAgentVolMounts), "System Probe volume mounts \ndiff = %s", cmp.Diff(sysProbeAgentMounts, wantSystemProbeAgentVolMounts)) coreWantVolumeMounts := []corev1.VolumeMount{ @@ -125,7 +124,7 @@ func Test_npmFeature_Configure(t *testing.T) { ReadOnly: true, }, } - coreAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentMounts, coreWantVolumeMounts), "Core Agent volume mounts \ndiff = %s", cmp.Diff(coreAgentMounts, coreWantVolumeMounts)) // check volumes @@ -191,7 +190,7 @@ func Test_npmFeature_Configure(t *testing.T) { }, } sysProbeWantEnvVarsNPM := append(sysProbeWantEnvVars, npmFeatureEnvVar...) - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeWantEnvVarsNPM, sysProbeWantEnvVarsNPM), "System Probe envvars \ndiff = %s", cmp.Diff(systemProbeEnvVars, sysProbeWantEnvVarsNPM)) processWantEnvVars := append(sysProbeWantEnvVars, &corev1.EnvVar{ @@ -199,7 +198,7 @@ func Test_npmFeature_Configure(t *testing.T) { Value: "true", }) - processAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ProcessAgentContainerName] + processAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ProcessAgentContainerName] assert.True(t, apiutils.IsEqualStruct(processAgentEnvVars, processWantEnvVars), "Process Agent envvars \ndiff = %s", cmp.Diff(processAgentEnvVars, processWantEnvVars)) } diff --git a/internal/controller/datadogagent/feature/oomkill/feature.go b/internal/controller/datadogagent/feature/oomkill/feature.go index b94a93e44..8bc7c3fb9 100644 --- a/internal/controller/datadogagent/feature/oomkill/feature.go +++ b/internal/controller/datadogagent/feature/oomkill/feature.go @@ -14,7 +14,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" ) @@ -44,7 +43,7 @@ func (f *oomKillFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature. if dda.Spec.Features != nil && dda.Spec.Features.OOMKill != nil && apiutils.BoolValue(dda.Spec.Features.OOMKill.Enabled) { reqComp.Agent = feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + Containers: []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, } } @@ -74,48 +73,48 @@ func (f *oomKillFeature) ManageSingleContainerNodeAgent(managers feature.PodTemp // It should do nothing if the feature doesn't need to configure it. func (f *oomKillFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { // security context capabilities - managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName) // modules volume mount modulesVol, modulesVolMount := volume.GetVolumes(apicommon.ModulesVolumeName, apicommon.ModulesVolumePath, apicommon.ModulesVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&modulesVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&modulesVolMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&modulesVol) // src volume mount _, providerValue := kubernetes.GetProviderLabelKeyValue(provider) if providerValue != kubernetes.GKECosType { srcVol, srcVolMount := volume.GetVolumes(apicommon.SrcVolumeName, apicommon.SrcVolumePath, apicommon.SrcVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&srcVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&srcVolMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&srcVol) } // debugfs volume mount debugfsVol, debugfsVolMount := volume.GetVolumes(apicommon.DebugfsVolumeName, apicommon.DebugfsPath, apicommon.DebugfsPath, false) managers.Volume().AddVolume(&debugfsVol) - managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName}) + managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName}) // socket volume mount (needs write perms for the system probe container but not the others) socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false) managers.Volume().AddVolume(&socketVol) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommon.SystemProbeContainerName) _, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommonv1.CoreAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommon.CoreAgentContainerName) // env vars enableEnvVar := &corev1.EnvVar{ Name: apicommon.DDEnableOOMKillEnvVar, Value: "true", } - managers.EnvVar().AddEnvVarToContainers([]apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, enableEnvVar) - managers.EnvVar().AddEnvVarToInitContainer(apicommonv1.InitConfigContainerName, enableEnvVar) + managers.EnvVar().AddEnvVarToContainers([]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, enableEnvVar) + managers.EnvVar().AddEnvVarToInitContainer(apicommon.InitConfigContainerName, enableEnvVar) sysProbeEnableEnvVar := &corev1.EnvVar{ Name: apicommon.DDSystemProbeEnabled, Value: "true", } managers.EnvVar().AddEnvVarToContainers( - []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, sysProbeEnableEnvVar, ) @@ -123,7 +122,7 @@ func (f *oomKillFeature) ManageNodeAgent(managers feature.PodTemplateManagers, p Name: apicommon.DDSystemProbeSocket, Value: apicommon.DefaultSystemProbeSocketPath, } - managers.EnvVar().AddEnvVarToContainers([]apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, socketEnvVar) + managers.EnvVar().AddEnvVarToContainers([]apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, socketEnvVar) return nil } diff --git a/internal/controller/datadogagent/feature/oomkill/feature_test.go b/internal/controller/datadogagent/feature/oomkill/feature_test.go index 155c5f96a..32612b5bb 100644 --- a/internal/controller/datadogagent/feature/oomkill/feature_test.go +++ b/internal/controller/datadogagent/feature/oomkill/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/agent" @@ -41,7 +40,7 @@ func Test_oomKillFeature_Configure(t *testing.T) { mgr := mgrInterface.(*fake.PodTemplateManagers) // check security context capabilities - sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommonv1.SystemProbeContainerName] + sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommon.SystemProbeContainerName] assert.True( t, apiutils.IsEqualStruct(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe()), @@ -81,10 +80,10 @@ func Test_oomKillFeature_Configure(t *testing.T) { }, } - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentVolumeMounts, wantCoreAgentVolMounts), "Core agent volume mounts \ndiff = %s", cmp.Diff(coreAgentVolumeMounts, wantCoreAgentVolMounts)) - systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] + systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeVolumeMounts, wantSystemProbeVolMounts), "System Probe volume mounts \ndiff = %s", cmp.Diff(systemProbeVolumeMounts, wantSystemProbeVolMounts)) // check volumes @@ -139,10 +138,10 @@ func Test_oomKillFeature_Configure(t *testing.T) { Value: apicommon.DefaultSystemProbeSocketPath, }, } - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, wantEnvVars), "Agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, wantEnvVars)) - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeEnvVars, wantEnvVars), "System Probe envvars \ndiff = %s", cmp.Diff(systemProbeEnvVars, wantEnvVars)) } diff --git a/internal/controller/datadogagent/feature/orchestratorexplorer/configmap_test.go b/internal/controller/datadogagent/feature/orchestratorexplorer/configmap_test.go index 1c3b42d8b..57938a597 100644 --- a/internal/controller/datadogagent/feature/orchestratorexplorer/configmap_test.go +++ b/internal/controller/datadogagent/feature/orchestratorexplorer/configmap_test.go @@ -12,7 +12,8 @@ import ( "github.com/stretchr/testify/require" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" + corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -36,7 +37,7 @@ instances: rbacSuffix string serviceAccountName string owner metav1.Object - customConfig *apicommonv1.CustomConfig + customConfig *v2alpha1.CustomConfig configConfigMapName string crCollection []string } @@ -63,7 +64,7 @@ instances: enable: true, runInClusterChecksRunner: true, configConfigMapName: apicommon.DefaultOrchestratorExplorerConf, - customConfig: &apicommonv1.CustomConfig{ + customConfig: &v2alpha1.CustomConfig{ ConfigData: &overrideConf, }, }, diff --git a/internal/controller/datadogagent/feature/orchestratorexplorer/feature.go b/internal/controller/datadogagent/feature/orchestratorexplorer/feature.go index cbe57d036..e9e38bd57 100644 --- a/internal/controller/datadogagent/feature/orchestratorexplorer/feature.go +++ b/internal/controller/datadogagent/feature/orchestratorexplorer/feature.go @@ -19,7 +19,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object" @@ -53,7 +52,7 @@ type orchestratorExplorerFeature struct { rbacSuffix string serviceAccountName string owner metav1.Object - customConfig *apicommonv1.CustomConfig + customConfig *v2alpha1.CustomConfig customResources []string configConfigMapName string @@ -78,13 +77,13 @@ func (f *orchestratorExplorerFeature) Configure(dda *v2alpha1.DatadogAgent) (req if orchestratorExplorer != nil && apiutils.BoolValue(orchestratorExplorer.Enabled) { reqComp.ClusterAgent.IsRequired = apiutils.NewBoolPointer(true) - reqContainers := []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName} + reqContainers := []apicommon.AgentContainerName{apicommon.CoreAgentContainerName} // Process Agent is not required as of agent version 7.51.0 if nodeAgent, ok := dda.Spec.Override[v2alpha1.NodeAgentComponentName]; ok { if nodeAgent.Image != nil && !utils.IsAboveMinVersion(common.GetAgentVersionFromImage(*nodeAgent.Image), NoProcessAgentMinVersion) { f.processAgentRequired = true - reqContainers = append(reqContainers, apicommonv1.ProcessAgentContainerName) + reqContainers = append(reqContainers, apicommon.ProcessAgentContainerName) } } @@ -94,7 +93,7 @@ func (f *orchestratorExplorerFeature) Configure(dda *v2alpha1.DatadogAgent) (req } if orchestratorExplorer.Conf != nil { - f.customConfig = v2alpha1.ConvertCustomConfig(orchestratorExplorer.Conf) + f.customConfig = orchestratorExplorer.Conf hash, err := comparison.GenerateMD5ForSpec(f.customConfig) if err != nil { f.logger.Error(err, "couldn't generate hash for orchestrator explorer custom config") @@ -105,7 +104,7 @@ func (f *orchestratorExplorerFeature) Configure(dda *v2alpha1.DatadogAgent) (req f.customConfigAnnotationKey = object.GetChecksumAnnotationKey(feature.OrchestratorExplorerIDType) } f.customResources = dda.Spec.Features.OrchestratorExplorer.CustomResources - f.configConfigMapName = apicommonv1.GetConfName(dda, f.customConfig, apicommon.DefaultOrchestratorExplorerConf) + f.configConfigMapName = v2alpha1.GetConfName(dda, f.customConfig, apicommon.DefaultOrchestratorExplorerConf) f.scrubContainers = apiutils.BoolValue(orchestratorExplorer.ScrubContainers) f.extraTags = orchestratorExplorer.ExtraTags if orchestratorExplorer.DDUrl != nil { @@ -177,7 +176,7 @@ func (f *orchestratorExplorerFeature) ManageClusterAgent(managers feature.PodTem } } - managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommonv1.ClusterAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.ClusterAgentContainerName) managers.Volume().AddVolume(&vol) if f.customConfigAnnotationKey != "" && f.customConfigAnnotationValue != "" { @@ -196,7 +195,7 @@ func (f *orchestratorExplorerFeature) ManageClusterAgent(managers feature.PodTem // It should do nothing if the feature doesn't need to configure it. func (f *orchestratorExplorerFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { for _, env := range f.getEnvVars() { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, env) + managers.EnvVar().AddEnvVarToContainer(apicommon.UnprivilegedSingleAgentContainerName, env) } return nil @@ -207,9 +206,9 @@ func (f *orchestratorExplorerFeature) ManageSingleContainerNodeAgent(managers fe func (f *orchestratorExplorerFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { for _, env := range f.getEnvVars() { if f.processAgentRequired { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, env) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, env) } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, env) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, env) } return nil @@ -220,7 +219,7 @@ func (f *orchestratorExplorerFeature) ManageNodeAgent(managers feature.PodTempla func (f *orchestratorExplorerFeature) ManageClusterChecksRunner(managers feature.PodTemplateManagers) error { if f.runInClusterChecksRunner { for _, env := range f.getEnvVars() { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterChecksRunnersContainerName, env) + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterChecksRunnersContainerName, env) } } diff --git a/internal/controller/datadogagent/feature/orchestratorexplorer/feature_test.go b/internal/controller/datadogagent/feature/orchestratorexplorer/feature_test.go index 182b67249..f3d99ebc4 100644 --- a/internal/controller/datadogagent/feature/orchestratorexplorer/feature_test.go +++ b/internal/controller/datadogagent/feature/orchestratorexplorer/feature_test.go @@ -10,7 +10,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -68,7 +67,7 @@ func Test_orchestratorExplorerFeature_Configure(t *testing.T) { WithOrchestratorExplorerExtraTags([]string{"a:z", "b:y", "c:x"}). WithOrchestratorExplorerDDUrl("https://foo.bar"). WithOrchestratorExplorerCustomConfigData(customConfDataV2). - WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{Image: &apicommonv1.AgentImageConfig{Tag: "7.51.0"}}). + WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{Image: &v2alpha1.AgentImageConfig{Tag: "7.51.0"}}). Build(), WantConfigure: true, ClusterAgent: orchestratorExplorerClusterAgentWantFuncV2(), @@ -84,7 +83,7 @@ func Test_orchestratorExplorerFeature_Configure(t *testing.T) { WithOrchestratorExplorerCustomConfigData(customConfDataV2). WithClusterChecksEnabled(true). WithClusterChecksUseCLCEnabled(true). - WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{Image: &apicommonv1.AgentImageConfig{Tag: "7.51.0"}}). + WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{Image: &v2alpha1.AgentImageConfig{Tag: "7.51.0"}}). Build(), WantConfigure: true, ClusterAgent: orchestratorExplorerClusterAgentWantFuncV2(), @@ -99,7 +98,7 @@ func Test_orchestratorExplorerFeature_Configure(t *testing.T) { WithOrchestratorExplorerExtraTags([]string{"a:z", "b:y", "c:x"}). WithOrchestratorExplorerDDUrl("https://foo.bar"). WithOrchestratorExplorerCustomConfigData(customConfDataV2). - WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{Image: &apicommonv1.AgentImageConfig{Tag: "7.50.0"}}). + WithComponentOverride(v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{Image: &v2alpha1.AgentImageConfig{Tag: "7.50.0"}}). Build(), WantConfigure: true, ClusterAgent: orchestratorExplorerClusterAgentWantFuncV2(), @@ -112,23 +111,23 @@ func Test_orchestratorExplorerFeature_Configure(t *testing.T) { func orchestratorExplorerNodeAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ProcessAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ProcessAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, expectedOrchestratorEnvsV2), "Process agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, expectedOrchestratorEnvsV2)) - agentEnvVars = mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars = mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, expectedOrchestratorEnvsV2), "Core agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, expectedOrchestratorEnvsV2)) } func orchestratorExplorerNodeAgentNoProcessAgentWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ProcessAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ProcessAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, nil), "Process agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, expectedOrchestratorEnvsV2)) - agentEnvVars = mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars = mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, expectedOrchestratorEnvsV2), "Core agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, expectedOrchestratorEnvsV2)) } func orchestratorExplorerClusterChecksRunnerWantFunc(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - runnerEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ClusterChecksRunnersContainerName] + runnerEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.ClusterChecksRunnersContainerName] assert.True(t, apiutils.IsEqualStruct(runnerEnvs, expectedOrchestratorEnvsV2), "Cluster Checks Runner envvars \ndiff = %s", cmp.Diff(runnerEnvs, expectedOrchestratorEnvsV2)) } @@ -140,7 +139,7 @@ func orchestratorExplorerClusterAgentWantFuncV2() *test.ComponentTest { assert.True(t, apiutils.IsEqualStruct(dcaEnvVars, expectedOrchestratorEnvsV2), "DCA envvars \ndiff = %s", cmp.Diff(dcaEnvVars, expectedOrchestratorEnvsV2)) // check annotation - customConfig := apicommonv1.CustomConfig{ + customConfig := v2alpha1.CustomConfig{ ConfigData: apiutils.NewStringPointer(customConfDataV2), } hash, err := comparison.GenerateMD5ForSpec(&customConfig) diff --git a/internal/controller/datadogagent/feature/otlp/feature.go b/internal/controller/datadogagent/feature/otlp/feature.go index ea45fa9b8..7139b70ff 100644 --- a/internal/controller/datadogagent/feature/otlp/feature.go +++ b/internal/controller/datadogagent/feature/otlp/feature.go @@ -20,7 +20,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/common" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" ) @@ -96,14 +95,14 @@ func (f *otlpFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Req reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, }, }, } // if using APM, require the Trace Agent too. if f.usingAPM { - reqComp.Agent.Containers = append(reqComp.Agent.Containers, apicommonv1.TraceAgentContainerName) + reqComp.Agent.Containers = append(reqComp.Agent.Containers, apicommon.TraceAgentContainerName) } } @@ -220,8 +219,8 @@ func (f *otlpFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplat Name: apicommon.DDOTLPgRPCEndpoint, Value: f.grpcEndpoint, } - managers.Port().AddPortToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, otlpgrpcPort) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, envVar) + managers.Port().AddPortToContainer(apicommon.UnprivilegedSingleAgentContainerName, otlpgrpcPort) + managers.EnvVar().AddEnvVarToContainer(apicommon.UnprivilegedSingleAgentContainerName, envVar) } if f.httpEnabled { @@ -240,8 +239,8 @@ func (f *otlpFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplat Name: apicommon.DDOTLPHTTPEndpoint, Value: f.httpEndpoint, } - managers.Port().AddPortToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, otlphttpPort) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, envVar) + managers.Port().AddPortToContainer(apicommon.UnprivilegedSingleAgentContainerName, otlphttpPort) + managers.EnvVar().AddEnvVarToContainer(apicommon.UnprivilegedSingleAgentContainerName, envVar) } return nil @@ -271,10 +270,10 @@ func (f *otlpFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov Name: apicommon.DDOTLPgRPCEndpoint, Value: f.grpcEndpoint, } - managers.Port().AddPortToContainer(apicommonv1.CoreAgentContainerName, otlpgrpcPort) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, envVar) + managers.Port().AddPortToContainer(apicommon.CoreAgentContainerName, otlpgrpcPort) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, envVar) if f.usingAPM { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.TraceAgentContainerName, envVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.TraceAgentContainerName, envVar) } } @@ -294,10 +293,10 @@ func (f *otlpFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov Name: apicommon.DDOTLPHTTPEndpoint, Value: f.httpEndpoint, } - managers.Port().AddPortToContainer(apicommonv1.CoreAgentContainerName, otlphttpPort) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, envVar) + managers.Port().AddPortToContainer(apicommon.CoreAgentContainerName, otlphttpPort) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, envVar) if f.usingAPM { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.TraceAgentContainerName, envVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.TraceAgentContainerName, envVar) } } diff --git a/internal/controller/datadogagent/feature/otlp/feature_test.go b/internal/controller/datadogagent/feature/otlp/feature_test.go index 5b5e72005..3202e8cce 100644 --- a/internal/controller/datadogagent/feature/otlp/feature_test.go +++ b/internal/controller/datadogagent/feature/otlp/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -242,7 +241,7 @@ func testExpected(exp Expected) *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True( t, apiutils.IsEqualStruct(agentEnvs, exp.EnvVars), @@ -250,7 +249,7 @@ func testExpected(exp Expected) *test.ComponentTest { ) if exp.CheckTraceAgent { - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.TraceAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.TraceAgentContainerName] assert.True( t, apiutils.IsEqualStruct(agentEnvs, exp.EnvVars), @@ -258,7 +257,7 @@ func testExpected(exp Expected) *test.ComponentTest { ) } - agentPorts := mgr.PortMgr.PortsByC[apicommonv1.CoreAgentContainerName] + agentPorts := mgr.PortMgr.PortsByC[apicommon.CoreAgentContainerName] assert.True( t, apiutils.IsEqualStruct(agentPorts, exp.Ports), @@ -273,7 +272,7 @@ func testExpectedSingleContainer(exp Expected) *test.ComponentTest { func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.UnprivilegedSingleAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.UnprivilegedSingleAgentContainerName] assert.True( t, apiutils.IsEqualStruct(agentEnvs, exp.EnvVars), @@ -281,7 +280,7 @@ func testExpectedSingleContainer(exp Expected) *test.ComponentTest { ) if exp.CheckTraceAgent { - agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.UnprivilegedSingleAgentContainerName] + agentEnvs := mgr.EnvVarMgr.EnvVarsByC[apicommon.UnprivilegedSingleAgentContainerName] assert.True( t, apiutils.IsEqualStruct(agentEnvs, exp.EnvVars), @@ -289,7 +288,7 @@ func testExpectedSingleContainer(exp Expected) *test.ComponentTest { ) } - agentPorts := mgr.PortMgr.PortsByC[apicommonv1.UnprivilegedSingleAgentContainerName] + agentPorts := mgr.PortMgr.PortsByC[apicommon.UnprivilegedSingleAgentContainerName] assert.True( t, apiutils.IsEqualStruct(agentPorts, exp.Ports), diff --git a/internal/controller/datadogagent/feature/processdiscovery/feature.go b/internal/controller/datadogagent/feature/processdiscovery/feature.go index 6555c19d5..53b5d4a8b 100644 --- a/internal/controller/datadogagent/feature/processdiscovery/feature.go +++ b/internal/controller/datadogagent/feature/processdiscovery/feature.go @@ -4,7 +4,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -40,14 +39,14 @@ func (p processDiscoveryFeature) ID() feature.IDType { func (p *processDiscoveryFeature) Configure(dda *v2alpha1.DatadogAgent) feature.RequiredComponents { var reqComp feature.RequiredComponents if dda.Spec.Features.ProcessDiscovery == nil || apiutils.BoolValue(dda.Spec.Features.ProcessDiscovery.Enabled) { - reqContainers := []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + reqContainers := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, } p.runInCoreAgent = featutils.OverrideRunInCoreAgent(dda, p.runInCoreAgent) if !p.runInCoreAgent { - reqContainers = append(reqContainers, apicommonv1.ProcessAgentContainerName) + reqContainers = append(reqContainers, apicommon.ProcessAgentContainerName) } reqComp = feature.RequiredComponents{ @@ -74,12 +73,12 @@ func (p processDiscoveryFeature) ManageNodeAgent(managers feature.PodTemplateMan Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&p.runInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, runInCoreAgentEnvVar) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, runInCoreAgentEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, runInCoreAgentEnvVar) - containerName := apicommonv1.CoreAgentContainerName + containerName := apicommon.CoreAgentContainerName if !p.runInCoreAgent { - containerName = apicommonv1.ProcessAgentContainerName + containerName = apicommon.ProcessAgentContainerName } p.manageNodeAgent(containerName, managers, provider) return nil @@ -90,12 +89,12 @@ func (p processDiscoveryFeature) ManageSingleContainerNodeAgent(managers feature Name: apicommon.DDProcessConfigRunInCoreAgent, Value: apiutils.BoolToString(&p.runInCoreAgent), } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.UnprivilegedSingleAgentContainerName, runInCoreAgentEnvVar) - p.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + managers.EnvVar().AddEnvVarToContainer(apicommon.UnprivilegedSingleAgentContainerName, runInCoreAgentEnvVar) + p.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } -func (p processDiscoveryFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (p processDiscoveryFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { // passwd volume mount passwdVol, passwdVolMount := volume.GetVolumes(apicommon.PasswdVolumeName, apicommon.PasswdHostPath, apicommon.PasswdMountPath, true) managers.VolumeMount().AddVolumeMountToContainer(&passwdVolMount, agentContainerName) diff --git a/internal/controller/datadogagent/feature/processdiscovery/feature_test.go b/internal/controller/datadogagent/feature/processdiscovery/feature_test.go index ebacb392a..1be4a657d 100644 --- a/internal/controller/datadogagent/feature/processdiscovery/feature_test.go +++ b/internal/controller/datadogagent/feature/processdiscovery/feature_test.go @@ -4,7 +4,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/DataDog/datadog-operator/api/utils" @@ -26,7 +25,7 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { WithProcessDiscoveryEnabled(true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, { Name: "process discovery disabled", @@ -40,7 +39,7 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { DDA: v2alpha1test.NewDatadogAgentBuilder(). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, { Name: "process discovery enabled in core agent via env vars", @@ -49,13 +48,13 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "true"}}, }, ). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.CoreAgentContainerName, true), + Agent: testExpectedAgent(apicommon.CoreAgentContainerName, true), }, { Name: "process discovery enabled in core agent via option", @@ -64,13 +63,13 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.CoreAgentContainerName, true), + Agent: testExpectedAgent(apicommon.CoreAgentContainerName, true), }, { Name: "process discovery enabled in core agent via option without min version", @@ -79,13 +78,13 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.52.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.52.0"}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, { Name: "process discovery disabled in core agent via env var override", @@ -94,14 +93,14 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { WithComponentOverride( v2alpha1.NodeAgentComponentName, v2alpha1.DatadogAgentComponentOverride{ - Image: &apicommonv1.AgentImageConfig{Tag: "7.57.0"}, + Image: &v2alpha1.AgentImageConfig{Tag: "7.57.0"}, Env: []corev1.EnvVar{{Name: "DD_PROCESS_CONFIG_RUN_IN_CORE_AGENT_ENABLED", Value: "false"}}, }, ). Build(), WantConfigure: true, FeatureOptions: &feature.Options{ProcessChecksInCoreAgentEnabled: true}, - Agent: testExpectedAgent(apicommonv1.ProcessAgentContainerName, false), + Agent: testExpectedAgent(apicommon.ProcessAgentContainerName, false), }, { Name: "process discovery enabled on single container", @@ -110,13 +109,13 @@ func Test_processDiscoveryFeature_Configure(t *testing.T) { WithSingleContainerStrategy(true). Build(), WantConfigure: true, - Agent: testExpectedAgent(apicommonv1.UnprivilegedSingleAgentContainerName, false), + Agent: testExpectedAgent(apicommon.UnprivilegedSingleAgentContainerName, false), }, } tests.Run(t, buildProcessDiscoveryFeature) } -func testExpectedAgent(agentContainerName apicommonv1.AgentContainerName, runInCoreAgent bool) *test.ComponentTest { +func testExpectedAgent(agentContainerName apicommon.AgentContainerName, runInCoreAgent bool) *test.ComponentTest { return test.NewDefaultComponentTest().WithWantFunc( func(t testing.TB, mgrInterface feature.PodTemplateManagers) { mgr := mgrInterface.(*fake.PodTemplateManagers) diff --git a/internal/controller/datadogagent/feature/prometheusscrape/feature.go b/internal/controller/datadogagent/feature/prometheusscrape/feature.go index 57d4bf3a3..26ea8ab64 100644 --- a/internal/controller/datadogagent/feature/prometheusscrape/feature.go +++ b/internal/controller/datadogagent/feature/prometheusscrape/feature.go @@ -14,7 +14,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" ) @@ -61,14 +60,14 @@ func (f *prometheusScrapeFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, }, }, ClusterAgent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.ClusterAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.ClusterAgentContainerName, }, }, } @@ -86,22 +85,22 @@ func (f *prometheusScrapeFeature) ManageDependencies(managers feature.ResourceMa // ManageClusterAgent allows a feature to configure the ClusterAgent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *prometheusScrapeFeature) ManageClusterAgent(managers feature.PodTemplateManagers) error { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDPrometheusScrapeEnabled, Value: "true", }) - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDPrometheusScrapeServiceEndpoints, Value: strconv.FormatBool(f.enableServiceEndpoints), }) if f.additionalConfigs != "" { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDPrometheusScrapeChecks, Value: apiutils.YAMLToJSONString(f.additionalConfigs), }) } if f.openmetricsVersion != 0 { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ClusterAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.ClusterAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDPrometheusScrapeVersion, Value: strconv.Itoa(f.openmetricsVersion), }) @@ -114,18 +113,18 @@ func (f *prometheusScrapeFeature) ManageClusterAgent(managers feature.PodTemplat // if SingleContainerStrategy is enabled and can be used with the configured feature set. // It should do nothing if the feature doesn't need to configure it. func (f *prometheusScrapeFeature) ManageSingleContainerNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.UnprivilegedSingleAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.UnprivilegedSingleAgentContainerName, managers, provider) return nil } // ManageNodeAgent allows a feature to configure the Node Agent's corev1.PodTemplateSpec // It should do nothing if the feature doesn't need to configure it. func (f *prometheusScrapeFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { - f.manageNodeAgent(apicommonv1.CoreAgentContainerName, managers, provider) + f.manageNodeAgent(apicommon.CoreAgentContainerName, managers, provider) return nil } -func (f *prometheusScrapeFeature) manageNodeAgent(agentContainerName apicommonv1.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { +func (f *prometheusScrapeFeature) manageNodeAgent(agentContainerName apicommon.AgentContainerName, managers feature.PodTemplateManagers, provider string) error { managers.EnvVar().AddEnvVarToContainer(agentContainerName, &corev1.EnvVar{ Name: apicommon.DDPrometheusScrapeEnabled, Value: "true", diff --git a/internal/controller/datadogagent/feature/prometheusscrape/feature_test.go b/internal/controller/datadogagent/feature/prometheusscrape/feature_test.go index 96b99ed37..2c5533b60 100644 --- a/internal/controller/datadogagent/feature/prometheusscrape/feature_test.go +++ b/internal/controller/datadogagent/feature/prometheusscrape/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -63,7 +62,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: "false", }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.CoreAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.CoreAgentContainerName, wantEnvVars) }, ), ClusterAgent: test.NewDefaultComponentTest().WithWantFunc( @@ -78,7 +77,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: "false", }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.ClusterAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.ClusterAgentContainerName, wantEnvVars) }, ), }, @@ -101,7 +100,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: "true", }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.CoreAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.CoreAgentContainerName, wantEnvVars) }, ), ClusterAgent: test.NewDefaultComponentTest().WithWantFunc( @@ -116,7 +115,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: "true", }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.ClusterAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.ClusterAgentContainerName, wantEnvVars) }, ), }, @@ -143,7 +142,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: jsonConfigs, }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.CoreAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.CoreAgentContainerName, wantEnvVars) }, ), ClusterAgent: test.NewDefaultComponentTest().WithWantFunc( @@ -162,7 +161,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: jsonConfigs, }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.ClusterAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.ClusterAgentContainerName, wantEnvVars) }, ), }, @@ -189,7 +188,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: "1", }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.CoreAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.CoreAgentContainerName, wantEnvVars) }, ), ClusterAgent: test.NewDefaultComponentTest().WithWantFunc( @@ -208,7 +207,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { Value: "1", }, } - assertContainerEnvVars(t, mgrInterface, apicommonv1.ClusterAgentContainerName, wantEnvVars) + assertContainerEnvVars(t, mgrInterface, apicommon.ClusterAgentContainerName, wantEnvVars) }, ), }, @@ -217,7 +216,7 @@ func Test_prometheusScrapeFeature_Configure(t *testing.T) { tests.Run(t, buildPrometheusScrapeFeature) } -func assertContainerEnvVars(t testing.TB, mgrInterface feature.PodTemplateManagers, containerName apicommonv1.AgentContainerName, wantEnvVars []*corev1.EnvVar) { +func assertContainerEnvVars(t testing.TB, mgrInterface feature.PodTemplateManagers, containerName apicommon.AgentContainerName, wantEnvVars []*corev1.EnvVar) { mgr := mgrInterface.(*fake.PodTemplateManagers) envVars := mgr.EnvVarMgr.EnvVarsByC[containerName] assert.True(t, apiutils.IsEqualStruct(envVars, wantEnvVars), "%s envvars \ndiff = %s", containerName, cmp.Diff(envVars, wantEnvVars)) diff --git a/internal/controller/datadogagent/feature/remoteconfig/feature.go b/internal/controller/datadogagent/feature/remoteconfig/feature.go index 11905868d..ae1229007 100644 --- a/internal/controller/datadogagent/feature/remoteconfig/feature.go +++ b/internal/controller/datadogagent/feature/remoteconfig/feature.go @@ -14,7 +14,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" ) @@ -78,14 +77,14 @@ func (f *rcFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requi reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(f.enabled), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, }, }, ClusterAgent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(f.enabled), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.ClusterAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.ClusterAgentContainerName, }, }, } diff --git a/internal/controller/datadogagent/feature/remoteconfig/feature_test.go b/internal/controller/datadogagent/feature/remoteconfig/feature_test.go index b69588149..be4aa3175 100644 --- a/internal/controller/datadogagent/feature/remoteconfig/feature_test.go +++ b/internal/controller/datadogagent/feature/remoteconfig/feature_test.go @@ -11,7 +11,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -67,7 +66,7 @@ func rcAgentNodeWantFunc(rcEnabled bool) *test.ComponentTest { Value: apiutils.BoolToString(&rcEnabled), }, } - actualEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + actualEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] checkEqual(t, "Core agent env var", expectedEnvVars, actualEnvVars) }, ) @@ -85,7 +84,7 @@ func rcClusterAgentNodeWantFunc(rcEnabled bool) *test.ComponentTest { Value: apiutils.BoolToString(&rcEnabled), }, } - actualEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + actualEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] checkEqual(t, "Cluster agent env var", expectedEnvVars, actualEnvVars) // Check cluster agent volume @@ -101,7 +100,7 @@ func rcClusterAgentNodeWantFunc(rcEnabled bool) *test.ComponentTest { if rcEnabled { expectedVolumeMounts = append(expectedVolumeMounts, rcVolumeMount) } - actualVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.AllContainers] + actualVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.AllContainers] checkEqual(t, "Cluster agent volume mount", expectedVolumeMounts, actualVolumeMounts) }, ) diff --git a/internal/controller/datadogagent/feature/sbom/feature.go b/internal/controller/datadogagent/feature/sbom/feature.go index 6bfa05ad2..2bd52927a 100644 --- a/internal/controller/datadogagent/feature/sbom/feature.go +++ b/internal/controller/datadogagent/feature/sbom/feature.go @@ -16,7 +16,6 @@ import ( "github.com/go-logr/logr" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" @@ -81,8 +80,8 @@ func (f *sbomFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Req reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, }, }, } @@ -161,19 +160,19 @@ func (f *sbomFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov } if f.containerImageUncompressedLayersSupport { if f.containerImageOverlayFSDirectScan { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDSBOMContainerOverlayFSDirectScan, Value: "true", }) } else { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDSBOMContainerUseMount, Value: "true", }) managers.SecurityContext().AddCapabilitiesToContainer( []corev1.Capability{"SYS_ADMIN"}, - apicommonv1.CoreAgentContainerName, + apicommon.CoreAgentContainerName, ) managers.Annotation().AddAnnotation(apicommon.AgentAppArmorAnnotationKey, apicommon.AgentAppArmorAnnotationValue) @@ -183,7 +182,7 @@ func (f *sbomFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov volMountMgr := managers.VolumeMount() containerdLibVol, containerdLibVolMount := volume.GetVolumes(apicommon.ContainerdDirVolumeName, apicommon.ContainerdDirVolumePath, apicommon.ContainerdDirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&containerdLibVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&containerdLibVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&containerdLibVol) } @@ -199,7 +198,7 @@ func (f *sbomFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov } if f.hostEnabled { - managers.EnvVar().AddEnvVarToContainer(apicommonv1.CoreAgentContainerName, &corev1.EnvVar{ + managers.EnvVar().AddEnvVarToContainer(apicommon.CoreAgentContainerName, &corev1.EnvVar{ Name: apicommon.DDHostRootEnvVar, Value: "/host", }) @@ -208,35 +207,35 @@ func (f *sbomFeature) ManageNodeAgent(managers feature.PodTemplateManagers, prov volMountMgr := managers.VolumeMount() osReleaseVol, osReleaseVolMount := volume.GetVolumes(apicommon.SystemProbeOSReleaseDirVolumeName, apicommon.SystemProbeOSReleaseDirVolumePath, apicommon.SystemProbeOSReleaseDirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&osReleaseVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&osReleaseVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&osReleaseVol) hostApkVol, hostApkVolMount := volume.GetVolumes(apicommon.ApkDirVolumeName, apicommon.ApkDirVolumePath, apicommon.ApkDirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostApkVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostApkVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostApkVol) hostDpkgVol, hostDpkgVolMount := volume.GetVolumes(apicommon.DpkgDirVolumeName, apicommon.DpkgDirVolumePath, apicommon.DpkgDirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostDpkgVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostDpkgVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostDpkgVol) hostRpmVol, hostRpmVolMount := volume.GetVolumes(apicommon.RpmDirVolumeName, apicommon.RpmDirVolumePath, apicommon.RpmDirMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostRpmVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostRpmVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostRpmVol) hostRedhatReleaseVol, hostRedhatReleaseVolMount := volume.GetVolumes(apicommon.RedhatReleaseVolumeName, apicommon.RedhatReleaseVolumePath, apicommon.RedhatReleaseMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostRedhatReleaseVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostRedhatReleaseVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostRedhatReleaseVol) hostFedoraReleaseVol, hostFedoraReleaseVolMount := volume.GetVolumes(apicommon.FedoraReleaseVolumeName, apicommon.FedoraReleaseVolumePath, apicommon.FedoraReleaseMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostFedoraReleaseVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostFedoraReleaseVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostFedoraReleaseVol) hostLsbReleaseVol, hostLsbReleaseVolMount := volume.GetVolumes(apicommon.LsbReleaseVolumeName, apicommon.LsbReleaseVolumePath, apicommon.LsbReleaseMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostLsbReleaseVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostLsbReleaseVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostLsbReleaseVol) hostSystemReleaseVol, hostSystemReleaseVolMount := volume.GetVolumes(apicommon.SystemReleaseVolumeName, apicommon.SystemReleaseVolumePath, apicommon.SystemReleaseMountPath, true) - volMountMgr.AddVolumeMountToContainer(&hostSystemReleaseVolMount, apicommonv1.CoreAgentContainerName) + volMountMgr.AddVolumeMountToContainer(&hostSystemReleaseVolMount, apicommon.CoreAgentContainerName) volMgr.AddVolume(&hostSystemReleaseVol) } diff --git a/internal/controller/datadogagent/feature/sbom/feature_test.go b/internal/controller/datadogagent/feature/sbom/feature_test.go index 5732a0628..0624e87e8 100644 --- a/internal/controller/datadogagent/feature/sbom/feature_test.go +++ b/internal/controller/datadogagent/feature/sbom/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -70,7 +69,7 @@ func Test_sbomFeature_Configure(t *testing.T) { }, } - nodeAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + nodeAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] assert.True(t, apiutils.IsEqualStruct(nodeAgentEnvVars, wantEnvVars), "Node agent envvars \ndiff = %s", cmp.Diff(nodeAgentEnvVars, wantEnvVars)) } @@ -92,7 +91,7 @@ func Test_sbomFeature_Configure(t *testing.T) { }, } - nodeAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + nodeAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] assert.True(t, apiutils.IsEqualStruct(nodeAgentEnvVars, wantEnvVars), "Node agent envvars \ndiff = %s", cmp.Diff(nodeAgentEnvVars, wantEnvVars)) } @@ -114,8 +113,8 @@ func Test_sbomFeature_Configure(t *testing.T) { }, } - nodeAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] - nodeCoreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + nodeAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] + nodeCoreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(nodeAgentEnvVars, wantEnvVars), "Node agent envvars \ndiff = %s", cmp.Diff(nodeAgentEnvVars, wantEnvVars)) wantEnvVars = []*corev1.EnvVar{{ @@ -150,8 +149,8 @@ func Test_sbomFeature_Configure(t *testing.T) { }, } - nodeAllAgentsEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] - nodeCoreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + nodeAllAgentsEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] + nodeCoreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(nodeCoreAgentEnvVars, wantCoreAgentHostEnvVars), "Node agent envvars \ndiff = %s", cmp.Diff(nodeCoreAgentEnvVars, wantCoreAgentHostEnvVars)) assert.True(t, apiutils.IsEqualStruct(nodeAllAgentsEnvVars, wantAllAgentsEnvVars), "Node agent envvars \ndiff = %s", cmp.Diff(nodeAllAgentsEnvVars, wantAllAgentsEnvVars)) @@ -198,7 +197,7 @@ func Test_sbomFeature_Configure(t *testing.T) { }, } - agentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + agentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentVolumeMounts, wantVolumeMounts), "Agent volume mounts \ndiff = %s", cmp.Diff(agentVolumeMounts, wantVolumeMounts)) wantVolumes := []corev1.Volume{ diff --git a/internal/controller/datadogagent/feature/tcpqueuelength/feature.go b/internal/controller/datadogagent/feature/tcpqueuelength/feature.go index 68649f53b..a9dc6dae5 100644 --- a/internal/controller/datadogagent/feature/tcpqueuelength/feature.go +++ b/internal/controller/datadogagent/feature/tcpqueuelength/feature.go @@ -15,7 +15,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" ) @@ -48,7 +47,7 @@ func (f *tcpQueueLengthFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp f if dda.Spec.Features.TCPQueueLength != nil && apiutils.BoolValue(dda.Spec.Features.TCPQueueLength.Enabled) { reqComp.Agent = feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + Containers: []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, } } @@ -78,33 +77,33 @@ func (f *tcpQueueLengthFeature) ManageSingleContainerNodeAgent(managers feature. // It should do nothing if the feature doesn't need to configure it. func (f *tcpQueueLengthFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provider string) error { // security context capabilities - managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName) // modules volume mount modulesVol, modulesVolMount := volume.GetVolumes(apicommon.ModulesVolumeName, apicommon.ModulesVolumePath, apicommon.ModulesVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&modulesVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&modulesVolMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&modulesVol) // src volume mount _, providerValue := kubernetes.GetProviderLabelKeyValue(provider) if providerValue != kubernetes.GKECosType { srcVol, srcVolMount := volume.GetVolumes(apicommon.SrcVolumeName, apicommon.SrcVolumePath, apicommon.SrcVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&srcVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&srcVolMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&srcVol) } // debugfs volume mount debugfsVol, debugfsVolMount := volume.GetVolumes(apicommon.DebugfsVolumeName, apicommon.DebugfsPath, apicommon.DebugfsPath, false) managers.Volume().AddVolume(&debugfsVol) - managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommonv1.AgentContainerName{apicommonv1.ProcessAgentContainerName, apicommonv1.SystemProbeContainerName}) + managers.VolumeMount().AddVolumeMountToContainers(&debugfsVolMount, []apicommon.AgentContainerName{apicommon.ProcessAgentContainerName, apicommon.SystemProbeContainerName}) // socket volume mount (needs write perms for the system probe container but not the others) socketVol, socketVolMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false) managers.Volume().AddVolume(&socketVol) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMount, apicommon.SystemProbeContainerName) _, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true) - managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommonv1.CoreAgentContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&socketVolMountReadOnly, apicommon.CoreAgentContainerName) // env vars enableEnvVar := &corev1.EnvVar{ @@ -112,17 +111,17 @@ func (f *tcpQueueLengthFeature) ManageNodeAgent(managers feature.PodTemplateMana Value: "true", } managers.EnvVar().AddEnvVarToContainers( - []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, enableEnvVar, ) - managers.EnvVar().AddEnvVarToInitContainer(apicommonv1.InitConfigContainerName, enableEnvVar) + managers.EnvVar().AddEnvVarToInitContainer(apicommon.InitConfigContainerName, enableEnvVar) sysProbeEnableEnvVar := &corev1.EnvVar{ Name: apicommon.DDSystemProbeEnabled, Value: "true", } managers.EnvVar().AddEnvVarToContainers( - []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, sysProbeEnableEnvVar, ) @@ -131,7 +130,7 @@ func (f *tcpQueueLengthFeature) ManageNodeAgent(managers feature.PodTemplateMana Value: apicommon.DefaultSystemProbeSocketPath, } managers.EnvVar().AddEnvVarToContainers( - []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, socketEnvVar, ) diff --git a/internal/controller/datadogagent/feature/tcpqueuelength/feature_test.go b/internal/controller/datadogagent/feature/tcpqueuelength/feature_test.go index 29b473d22..b691b6cb7 100644 --- a/internal/controller/datadogagent/feature/tcpqueuelength/feature_test.go +++ b/internal/controller/datadogagent/feature/tcpqueuelength/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/agent" @@ -42,7 +41,7 @@ func Test_tcpQueueLengthFeature_Configure(t *testing.T) { mgr := mgrInterface.(*fake.PodTemplateManagers) // check security context capabilities - sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommonv1.SystemProbeContainerName] + sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommon.SystemProbeContainerName] assert.True( t, apiutils.IsEqualStruct(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe()), @@ -82,10 +81,10 @@ func Test_tcpQueueLengthFeature_Configure(t *testing.T) { }, } - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentVolumeMounts, wantCoreAgentVolMounts), "Core agent volume mounts \ndiff = %s", cmp.Diff(coreAgentVolumeMounts, wantCoreAgentVolMounts)) - systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] + systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeVolumeMounts, wantSystemProbeVolMounts), "System Probe volume mounts \ndiff = %s", cmp.Diff(systemProbeVolumeMounts, wantSystemProbeVolMounts)) // check volumes @@ -140,10 +139,10 @@ func Test_tcpQueueLengthFeature_Configure(t *testing.T) { Value: apicommon.DefaultSystemProbeSocketPath, }, } - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, wantEnvVars), "Agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, wantEnvVars)) - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeEnvVars, wantEnvVars), "System Probe envvars \ndiff = %s", cmp.Diff(systemProbeEnvVars, wantEnvVars)) } diff --git a/internal/controller/datadogagent/feature/test/factory_test.go b/internal/controller/datadogagent/feature/test/factory_test.go index faf6b83af..9a613f567 100644 --- a/internal/controller/datadogagent/feature/test/factory_test.go +++ b/internal/controller/datadogagent/feature/test/factory_test.go @@ -3,7 +3,7 @@ package test import ( "testing" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" "github.com/stretchr/testify/assert" @@ -21,7 +21,7 @@ func TestBuilder(t *testing.T) { name string dda *v2alpha1.DatadogAgent wantCoreAgentComponent bool - wantAgentContainer map[apicommonv1.AgentContainerName]bool + wantAgentContainer map[common.AgentContainerName]bool }{ { // This test relies on the fact that by default Live Container feature is enabled @@ -29,13 +29,13 @@ func TestBuilder(t *testing.T) { name: "Default DDA, Core and Process agent enabled", dda: v2alpha1test.NewDatadogAgentBuilder(). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: false, - apicommonv1.CoreAgentContainerName: true, - apicommonv1.ProcessAgentContainerName: true, - apicommonv1.TraceAgentContainerName: true, - apicommonv1.SystemProbeContainerName: false, - apicommonv1.SecurityAgentContainerName: false, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: false, + common.CoreAgentContainerName: true, + common.ProcessAgentContainerName: true, + common.TraceAgentContainerName: true, + common.SystemProbeContainerName: false, + common.SecurityAgentContainerName: false, }, }, { @@ -43,13 +43,13 @@ func TestBuilder(t *testing.T) { dda: v2alpha1test.NewDatadogAgentBuilder(). WithSingleContainerStrategy(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: true, - apicommonv1.CoreAgentContainerName: false, - apicommonv1.ProcessAgentContainerName: false, - apicommonv1.TraceAgentContainerName: false, - apicommonv1.SystemProbeContainerName: false, - apicommonv1.SecurityAgentContainerName: false, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: true, + common.CoreAgentContainerName: false, + common.ProcessAgentContainerName: false, + common.TraceAgentContainerName: false, + common.SystemProbeContainerName: false, + common.SecurityAgentContainerName: false, }, }, { @@ -57,13 +57,13 @@ func TestBuilder(t *testing.T) { dda: v2alpha1test.NewDatadogAgentBuilder(). WithAPMEnabled(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: false, - apicommonv1.CoreAgentContainerName: true, - apicommonv1.ProcessAgentContainerName: true, - apicommonv1.TraceAgentContainerName: true, - apicommonv1.SystemProbeContainerName: false, - apicommonv1.SecurityAgentContainerName: false, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: false, + common.CoreAgentContainerName: true, + common.ProcessAgentContainerName: true, + common.TraceAgentContainerName: true, + common.SystemProbeContainerName: false, + common.SecurityAgentContainerName: false, }, }, { @@ -72,13 +72,13 @@ func TestBuilder(t *testing.T) { WithSingleContainerStrategy(true). WithAPMEnabled(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: true, - apicommonv1.CoreAgentContainerName: false, - apicommonv1.ProcessAgentContainerName: false, - apicommonv1.TraceAgentContainerName: false, - apicommonv1.SystemProbeContainerName: false, - apicommonv1.SecurityAgentContainerName: false, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: true, + common.CoreAgentContainerName: false, + common.ProcessAgentContainerName: false, + common.TraceAgentContainerName: false, + common.SystemProbeContainerName: false, + common.SecurityAgentContainerName: false, }, }, { @@ -87,13 +87,13 @@ func TestBuilder(t *testing.T) { WithAPMEnabled(true). WithNPMEnabled(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: false, - apicommonv1.CoreAgentContainerName: true, - apicommonv1.ProcessAgentContainerName: true, - apicommonv1.TraceAgentContainerName: true, - apicommonv1.SystemProbeContainerName: true, - apicommonv1.SecurityAgentContainerName: false, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: false, + common.CoreAgentContainerName: true, + common.ProcessAgentContainerName: true, + common.TraceAgentContainerName: true, + common.SystemProbeContainerName: true, + common.SecurityAgentContainerName: false, }, }, { @@ -103,13 +103,13 @@ func TestBuilder(t *testing.T) { WithAPMEnabled(true). WithNPMEnabled(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: false, - apicommonv1.CoreAgentContainerName: true, - apicommonv1.ProcessAgentContainerName: true, - apicommonv1.TraceAgentContainerName: true, - apicommonv1.SystemProbeContainerName: true, - apicommonv1.SecurityAgentContainerName: false, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: false, + common.CoreAgentContainerName: true, + common.ProcessAgentContainerName: true, + common.TraceAgentContainerName: true, + common.SystemProbeContainerName: true, + common.SecurityAgentContainerName: false, }, }, { @@ -119,13 +119,13 @@ func TestBuilder(t *testing.T) { WithNPMEnabled(true). WithCSPMEnabled(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: false, - apicommonv1.CoreAgentContainerName: true, - apicommonv1.ProcessAgentContainerName: true, - apicommonv1.TraceAgentContainerName: true, - apicommonv1.SystemProbeContainerName: true, - apicommonv1.SecurityAgentContainerName: true, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: false, + common.CoreAgentContainerName: true, + common.ProcessAgentContainerName: true, + common.TraceAgentContainerName: true, + common.SystemProbeContainerName: true, + common.SecurityAgentContainerName: true, }, }, { @@ -136,13 +136,13 @@ func TestBuilder(t *testing.T) { WithNPMEnabled(true). WithCSPMEnabled(true). BuildWithDefaults(), - wantAgentContainer: map[apicommonv1.AgentContainerName]bool{ - apicommonv1.UnprivilegedSingleAgentContainerName: false, - apicommonv1.CoreAgentContainerName: true, - apicommonv1.ProcessAgentContainerName: true, - apicommonv1.TraceAgentContainerName: true, - apicommonv1.SystemProbeContainerName: true, - apicommonv1.SecurityAgentContainerName: true, + wantAgentContainer: map[common.AgentContainerName]bool{ + common.UnprivilegedSingleAgentContainerName: false, + common.CoreAgentContainerName: true, + common.ProcessAgentContainerName: true, + common.TraceAgentContainerName: true, + common.SystemProbeContainerName: true, + common.SecurityAgentContainerName: true, }, }, } @@ -160,7 +160,7 @@ func TestBuilder(t *testing.T) { } } -func wantAgentContainer(wantedContainer apicommonv1.AgentContainerName, requiredComponents feature.RequiredComponents) bool { +func wantAgentContainer(wantedContainer common.AgentContainerName, requiredComponents feature.RequiredComponents) bool { for _, agentContainerName := range requiredComponents.Agent.Containers { if agentContainerName == wantedContainer { return true diff --git a/internal/controller/datadogagent/feature/test/testsuite.go b/internal/controller/datadogagent/feature/test/testsuite.go index bddb25182..64a4dc7b6 100644 --- a/internal/controller/datadogagent/feature/test/testsuite.go +++ b/internal/controller/datadogagent/feature/test/testsuite.go @@ -3,7 +3,7 @@ package test import ( "testing" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -138,7 +138,7 @@ func runTest(t *testing.T, tt FeatureTest) { if tt.Agent != nil { tplManager, provider := tt.Agent.CreateFunc(t) - if len(gotConfigure.Agent.Containers) > 0 && gotConfigure.Agent.Containers[0] == apicommonv1.UnprivilegedSingleAgentContainerName { + if len(gotConfigure.Agent.Containers) > 0 && gotConfigure.Agent.Containers[0] == common.UnprivilegedSingleAgentContainerName { _ = feat.ManageSingleContainerNodeAgent(tplManager, provider) } else { _ = feat.ManageNodeAgent(tplManager, provider) diff --git a/internal/controller/datadogagent/feature/types.go b/internal/controller/datadogagent/feature/types.go index 8ed06b44c..c56b71393 100644 --- a/internal/controller/datadogagent/feature/types.go +++ b/internal/controller/datadogagent/feature/types.go @@ -6,8 +6,7 @@ package feature import ( - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" @@ -51,7 +50,7 @@ func (rc *RequiredComponents) Merge(in *RequiredComponents) *RequiredComponents // - false: the feature does not need the corresponding component, but if it runs the feature needs to be configured (e.g. explicitly disabled). type RequiredComponent struct { IsRequired *bool - Containers []apicommonv1.AgentContainerName + Containers []common.AgentContainerName } // IsEnabled returns true if the Feature needs the current RequiredComponent @@ -76,7 +75,7 @@ func (rc *RequiredComponent) IsPrivileged() bool { func (rc *RequiredComponent) SingleContainerStrategyEnabled() bool { return len(rc.Containers) == 1 && - rc.Containers[0] == apicommonv1.UnprivilegedSingleAgentContainerName + rc.Containers[0] == common.UnprivilegedSingleAgentContainerName } // Merge use to merge 2 RequiredComponents @@ -102,7 +101,7 @@ func merge(a, b *bool) *bool { return apiutils.NewBoolPointer(true) } -func mergeSlices(a, b []apicommonv1.AgentContainerName) []apicommonv1.AgentContainerName { +func mergeSlices(a, b []common.AgentContainerName) []common.AgentContainerName { out := a for _, containerB := range b { found := false diff --git a/internal/controller/datadogagent/feature/types_test.go b/internal/controller/datadogagent/feature/types_test.go index 1ab6b1364..bb8fdc2e5 100644 --- a/internal/controller/datadogagent/feature/types_test.go +++ b/internal/controller/datadogagent/feature/types_test.go @@ -9,7 +9,7 @@ import ( "reflect" "testing" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + common "github.com/DataDog/datadog-operator/api/datadoghq/common" ) func Test_merge(t *testing.T) { @@ -83,15 +83,15 @@ func Test_merge(t *testing.T) { func Test_mergeSlices(t *testing.T) { tests := []struct { name string - a []apicommonv1.AgentContainerName - b []apicommonv1.AgentContainerName - want []apicommonv1.AgentContainerName + a []common.AgentContainerName + b []common.AgentContainerName + want []common.AgentContainerName }{ { name: "empty slices", - a: []apicommonv1.AgentContainerName{}, - b: []apicommonv1.AgentContainerName{}, - want: []apicommonv1.AgentContainerName{}, + a: []common.AgentContainerName{}, + b: []common.AgentContainerName{}, + want: []common.AgentContainerName{}, }, { name: "nil slices", @@ -101,24 +101,24 @@ func Test_mergeSlices(t *testing.T) { }, { name: "a not empty, b empty", - a: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName}, - b: []apicommonv1.AgentContainerName{}, - want: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName}, + a: []common.AgentContainerName{common.ClusterAgentContainerName}, + b: []common.AgentContainerName{}, + want: []common.AgentContainerName{common.ClusterAgentContainerName}, }, { name: "a,b same data", - a: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName}, - b: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName}, - want: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName}, + a: []common.AgentContainerName{common.ClusterAgentContainerName}, + b: []common.AgentContainerName{common.ClusterAgentContainerName}, + want: []common.AgentContainerName{common.ClusterAgentContainerName}, }, { name: "a,b merge data", - a: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName, apicommonv1.ClusterAgentContainerName}, - b: []apicommonv1.AgentContainerName{apicommonv1.ClusterAgentContainerName, apicommonv1.ProcessAgentContainerName}, - want: []apicommonv1.AgentContainerName{ - apicommonv1.ClusterAgentContainerName, - apicommonv1.ClusterAgentContainerName, - apicommonv1.ProcessAgentContainerName, + a: []common.AgentContainerName{common.ClusterAgentContainerName, common.ClusterAgentContainerName}, + b: []common.AgentContainerName{common.ClusterAgentContainerName, common.ProcessAgentContainerName}, + want: []common.AgentContainerName{ + common.ClusterAgentContainerName, + common.ClusterAgentContainerName, + common.ProcessAgentContainerName, }, }, } @@ -137,7 +137,7 @@ func TestRequiredComponent_IsEnabled(t *testing.T) { type fields struct { IsRequired *bool - Containers []apicommonv1.AgentContainerName + Containers []common.AgentContainerName } tests := []struct { @@ -189,7 +189,7 @@ func TestRequiredComponent_IsConfigured(t *testing.T) { type fields struct { IsRequired *bool - Containers []apicommonv1.AgentContainerName + Containers []common.AgentContainerName } tests := []struct { diff --git a/internal/controller/datadogagent/feature/usm/feature.go b/internal/controller/datadogagent/feature/usm/feature.go index 45b1d0584..3be79daec 100644 --- a/internal/controller/datadogagent/feature/usm/feature.go +++ b/internal/controller/datadogagent/feature/usm/feature.go @@ -13,7 +13,6 @@ import ( apiutils "github.com/DataDog/datadog-operator/api/utils" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object/volume" ) @@ -49,10 +48,10 @@ func (f *usmFeature) Configure(dda *v2alpha1.DatadogAgent) (reqComp feature.Requ reqComp = feature.RequiredComponents{ Agent: feature.RequiredComponent{ IsRequired: apiutils.NewBoolPointer(true), - Containers: []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, - apicommonv1.SystemProbeContainerName, + Containers: []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.SystemProbeContainerName, }, }, } @@ -105,27 +104,27 @@ func (f *usmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi managers.Annotation().AddAnnotation(apicommon.SystemProbeAppArmorAnnotationKey, apicommon.SystemProbeAppArmorAnnotationValue) // security context capabilities - managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommonv1.SystemProbeContainerName) + managers.SecurityContext().AddCapabilitiesToContainer(agent.DefaultCapabilitiesForSystemProbe(), apicommon.SystemProbeContainerName) // volume mounts procdirVol, procdirMount := volume.GetVolumes(apicommon.ProcdirVolumeName, apicommon.ProcdirHostPath, apicommon.ProcdirMountPath, true) - managers.VolumeMount().AddVolumeMountToContainer(&procdirMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&procdirMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&procdirVol) cgroupsVol, cgroupsMount := volume.GetVolumes(apicommon.CgroupsVolumeName, apicommon.CgroupsHostPath, apicommon.CgroupsMountPath, true) - managers.VolumeMount().AddVolumeMountToContainer(&cgroupsMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&cgroupsMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&cgroupsVol) debugfsVol, debugfsMount := volume.GetVolumes(apicommon.DebugfsVolumeName, apicommon.DebugfsPath, apicommon.DebugfsPath, false) - managers.VolumeMount().AddVolumeMountToContainer(&debugfsMount, apicommonv1.SystemProbeContainerName) + managers.VolumeMount().AddVolumeMountToContainer(&debugfsMount, apicommon.SystemProbeContainerName) managers.Volume().AddVolume(&debugfsVol) // socket volume mount (needs write perms for the system probe container but not the others) socketDirVol, socketDirMount := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, false) managers.VolumeMount().AddVolumeMountToContainers( &socketDirMount, - []apicommonv1.AgentContainerName{ - apicommonv1.SystemProbeContainerName, + []apicommon.AgentContainerName{ + apicommon.SystemProbeContainerName, }, ) managers.Volume().AddVolume(&socketDirVol) @@ -133,17 +132,17 @@ func (f *usmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi _, socketVolMountReadOnly := volume.GetVolumesEmptyDir(apicommon.SystemProbeSocketVolumeName, apicommon.SystemProbeSocketVolumePath, true) managers.VolumeMount().AddVolumeMountToContainers( &socketVolMountReadOnly, - []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, }, ) // env vars for Core Agent, Process Agent and System Probe - containersForEnvVars := []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, - apicommonv1.SystemProbeContainerName, + containersForEnvVars := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.SystemProbeContainerName, } enabledEnvVar := &corev1.EnvVar{ @@ -157,7 +156,7 @@ func (f *usmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Value: "true", } managers.EnvVar().AddEnvVarToContainers( - []apicommonv1.AgentContainerName{apicommonv1.CoreAgentContainerName, apicommonv1.SystemProbeContainerName}, + []apicommon.AgentContainerName{apicommon.CoreAgentContainerName, apicommon.SystemProbeContainerName}, sysProbeEnableEnvVar, ) @@ -172,7 +171,7 @@ func (f *usmFeature) ManageNodeAgent(managers feature.PodTemplateManagers, provi Name: apicommon.DDSystemProbeExternal, Value: "true", } - managers.EnvVar().AddEnvVarToContainer(apicommonv1.ProcessAgentContainerName, sysProbeExternalEnvVar) + managers.EnvVar().AddEnvVarToContainer(apicommon.ProcessAgentContainerName, sysProbeExternalEnvVar) return nil } diff --git a/internal/controller/datadogagent/feature/usm/feature_test.go b/internal/controller/datadogagent/feature/usm/feature_test.go index 6684238ac..a99bcb5d9 100644 --- a/internal/controller/datadogagent/feature/usm/feature_test.go +++ b/internal/controller/datadogagent/feature/usm/feature_test.go @@ -9,7 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/agent" @@ -47,7 +46,7 @@ func Test_usmFeature_Configure(t *testing.T) { assert.True(t, apiutils.IsEqualStruct(annotations, wantAnnotations), "Annotations \ndiff = %s", cmp.Diff(annotations, wantAnnotations)) // check security context capabilities - sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommonv1.SystemProbeContainerName] + sysProbeCapabilities := mgr.SecurityContextMgr.CapabilitiesByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe()), "System Probe security context capabilities \ndiff = %s", cmp.Diff(sysProbeCapabilities, agent.DefaultCapabilitiesForSystemProbe())) // check volume mounts @@ -74,7 +73,7 @@ func Test_usmFeature_Configure(t *testing.T) { }, } - sysProbeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] + sysProbeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(sysProbeMounts, wantVolumeMounts), "System Probe volume mounts \ndiff = %s", cmp.Diff(sysProbeMounts, wantVolumeMounts)) coreWantVolumeMounts := []corev1.VolumeMount{ @@ -84,7 +83,7 @@ func Test_usmFeature_Configure(t *testing.T) { ReadOnly: true, }, } - coreAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] + coreAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentMounts, coreWantVolumeMounts), "Core Agent volume mounts \ndiff = %s", cmp.Diff(coreAgentMounts, coreWantVolumeMounts)) processWantVolumeMounts := []corev1.VolumeMount{ @@ -94,7 +93,7 @@ func Test_usmFeature_Configure(t *testing.T) { ReadOnly: true, }, } - processAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ProcessAgentContainerName] + processAgentMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ProcessAgentContainerName] assert.True(t, apiutils.IsEqualStruct(processAgentMounts, processWantVolumeMounts), "Process Agent volume mounts \ndiff = %s", cmp.Diff(processAgentMounts, processWantVolumeMounts)) // check volumes @@ -150,7 +149,7 @@ func Test_usmFeature_Configure(t *testing.T) { }, } - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] assert.True(t, apiutils.IsEqualStruct(systemProbeEnvVars, wantEnvVars), "System Probe envvars \ndiff = %s", cmp.Diff(systemProbeEnvVars, wantEnvVars)) } diff --git a/internal/controller/datadogagent/merger/envvars.go b/internal/controller/datadogagent/merger/envvars.go index 9f5f3be0c..499fd6404 100644 --- a/internal/controller/datadogagent/merger/envvars.go +++ b/internal/controller/datadogagent/merger/envvars.go @@ -8,7 +8,7 @@ package merger import ( "strings" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" corev1 "k8s.io/api/core/v1" ) @@ -20,14 +20,14 @@ type EnvVarManager interface { // The way the EnvVar is merge with an existing EnvVar can be tune thank to the EnvVarMergeFunction parameter. AddEnvVarWithMergeFunc(newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error // AddEnvVarToContainer use to add an environment variable to a specific container present in the Pod. - AddEnvVarToContainer(containerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar) + AddEnvVarToContainer(containerName common.AgentContainerName, newEnvVar *corev1.EnvVar) // AddEnvVarToContainers use to add an environment variable to specified containers present in the Pod. - AddEnvVarToContainers(containerNames []commonv1.AgentContainerName, newEnvVar *corev1.EnvVar) + AddEnvVarToContainers(containerNames []common.AgentContainerName, newEnvVar *corev1.EnvVar) // AddEnvVarToInitContainer use to add an environment variable to a specific init container present in the Pod. - AddEnvVarToInitContainer(containerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar) + AddEnvVarToInitContainer(containerName common.AgentContainerName, newEnvVar *corev1.EnvVar) // AddEnvVarWithMergeFunc use to add an environment variable to a specific container present in the Pod. // The way the EnvVar is merge with an existing EnvVar can be tune thank to the EnvVarMergeFunction parameter. - AddEnvVarToContainerWithMergeFunc(containerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error + AddEnvVarToContainerWithMergeFunc(containerName common.AgentContainerName, newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error } // NewEnvVarManager return new instance of the EnvVarManager @@ -47,7 +47,7 @@ func (impl *envVarManagerImpl) AddEnvVar(newEnvVar *corev1.EnvVar) { func (impl *envVarManagerImpl) AddEnvVarWithMergeFunc(newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error { for id, cont := range impl.podTmpl.Spec.Containers { - if _, ok := AllAgentContainers[commonv1.AgentContainerName(cont.Name)]; ok { + if _, ok := AllAgentContainers[common.AgentContainerName(cont.Name)]; ok { _, err := AddEnvVarToContainer(&impl.podTmpl.Spec.Containers[id], newEnvVar, mergeFunc) if err != nil { return err @@ -57,21 +57,21 @@ func (impl *envVarManagerImpl) AddEnvVarWithMergeFunc(newEnvVar *corev1.EnvVar, return nil } -func (impl *envVarManagerImpl) AddEnvVarToContainer(containerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar) { +func (impl *envVarManagerImpl) AddEnvVarToContainer(containerName common.AgentContainerName, newEnvVar *corev1.EnvVar) { _ = impl.AddEnvVarToContainerWithMergeFunc(containerName, newEnvVar, DefaultEnvVarMergeFunction) } -func (impl *envVarManagerImpl) AddEnvVarToContainers(containerNames []commonv1.AgentContainerName, newEnvVar *corev1.EnvVar) { +func (impl *envVarManagerImpl) AddEnvVarToContainers(containerNames []common.AgentContainerName, newEnvVar *corev1.EnvVar) { for _, containerName := range containerNames { _ = impl.AddEnvVarToContainerWithMergeFunc(containerName, newEnvVar, DefaultEnvVarMergeFunction) } } -func (impl *envVarManagerImpl) AddEnvVarToInitContainer(initContainerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar) { +func (impl *envVarManagerImpl) AddEnvVarToInitContainer(initContainerName common.AgentContainerName, newEnvVar *corev1.EnvVar) { _ = impl.AddEnvVarToInitContainerWithMergeFunc(initContainerName, newEnvVar, DefaultEnvVarMergeFunction) } -func (impl *envVarManagerImpl) AddEnvVarToContainerWithMergeFunc(containerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error { +func (impl *envVarManagerImpl) AddEnvVarToContainerWithMergeFunc(containerName common.AgentContainerName, newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error { for id := range impl.podTmpl.Spec.Containers { if impl.podTmpl.Spec.Containers[id].Name == string(containerName) { _, err := AddEnvVarToContainer(&impl.podTmpl.Spec.Containers[id], newEnvVar, mergeFunc) @@ -83,7 +83,7 @@ func (impl *envVarManagerImpl) AddEnvVarToContainerWithMergeFunc(containerName c return nil } -func (impl *envVarManagerImpl) AddEnvVarToInitContainerWithMergeFunc(initContainerName commonv1.AgentContainerName, newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error { +func (impl *envVarManagerImpl) AddEnvVarToInitContainerWithMergeFunc(initContainerName common.AgentContainerName, newEnvVar *corev1.EnvVar, mergeFunc EnvVarMergeFunction) error { for id := range impl.podTmpl.Spec.InitContainers { if impl.podTmpl.Spec.InitContainers[id].Name == string(initContainerName) { _, err := AddEnvVarToContainer(&impl.podTmpl.Spec.InitContainers[id], newEnvVar, mergeFunc) diff --git a/internal/controller/datadogagent/merger/envvars_test.go b/internal/controller/datadogagent/merger/envvars_test.go index 0e8bdd9f1..ce5f7d9c8 100644 --- a/internal/controller/datadogagent/merger/envvars_test.go +++ b/internal/controller/datadogagent/merger/envvars_test.go @@ -9,7 +9,7 @@ import ( "reflect" "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" @@ -141,19 +141,19 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), }, { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), }, { - Name: string(commonv1.ProcessAgentContainerName), + Name: string(common.ProcessAgentContainerName), }, { - Name: string(commonv1.SecurityAgentContainerName), + Name: string(common.SecurityAgentContainerName), }, { - Name: string(commonv1.SystemProbeContainerName), + Name: string(common.SystemProbeContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -163,13 +163,13 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers except fips should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), }, { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -179,7 +179,7 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterAgentContainerName), + Name: string(common.ClusterAgentContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -189,10 +189,10 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers except fips should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterAgentContainerName), + Name: string(common.ClusterAgentContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -202,7 +202,7 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterChecksRunnersContainerName), + Name: string(common.ClusterChecksRunnersContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -212,10 +212,10 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers except fips should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterChecksRunnersContainerName), + Name: string(common.ClusterChecksRunnersContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -225,7 +225,7 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.UnprivilegedSingleAgentContainerName), + Name: string(common.UnprivilegedSingleAgentContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -235,10 +235,10 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { description: "all containers except fips should have env var added", containers: []corev1.Container{ { - Name: string(commonv1.UnprivilegedSingleAgentContainerName), + Name: string(common.UnprivilegedSingleAgentContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.EnvVar{*envvarFoo}, @@ -254,7 +254,7 @@ func TestAddEnvVarWithMergeFunc(t *testing.T) { assert.NoError(t, err) for _, cont := range manager.podTmpl.Spec.Containers { - if cont.Name == string(commonv1.FIPSProxyContainerName) { + if cont.Name == string(common.FIPSProxyContainerName) { assert.Len(t, cont.Env, 0) } else { assert.Contains(t, cont.Env, tt.want) diff --git a/internal/controller/datadogagent/merger/fake/const.go b/internal/controller/datadogagent/merger/fake/const.go index 9d341aa02..8e1d6097d 100644 --- a/internal/controller/datadogagent/merger/fake/const.go +++ b/internal/controller/datadogagent/merger/fake/const.go @@ -1,8 +1,8 @@ package fake -import commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" +import "github.com/DataDog/datadog-operator/api/datadoghq/common" const ( // AllContainers all containers container name - AllContainers commonv1.AgentContainerName = "all" + AllContainers common.AgentContainerName = "all" ) diff --git a/internal/controller/datadogagent/merger/fake/envvar_manager.go b/internal/controller/datadogagent/merger/fake/envvar_manager.go index d28da6288..d7857ca78 100644 --- a/internal/controller/datadogagent/merger/fake/envvar_manager.go +++ b/internal/controller/datadogagent/merger/fake/envvar_manager.go @@ -3,7 +3,7 @@ package fake import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" merger "github.com/DataDog/datadog-operator/internal/controller/datadogagent/merger" v1 "k8s.io/api/core/v1" @@ -11,7 +11,7 @@ import ( // EnvVarManager is an autogenerated mock type for the EnvVarManager type type EnvVarManager struct { - EnvVarsByC map[commonv1.AgentContainerName][]*v1.EnvVar + EnvVarsByC map[common.AgentContainerName][]*v1.EnvVar t testing.TB } @@ -23,7 +23,7 @@ func (_m *EnvVarManager) AddEnvVar(newEnvVar *v1.EnvVar) { } // AddEnvVarToContainer provides a mock function with given fields: containerName, newEnvVar -func (_m *EnvVarManager) AddEnvVarToContainer(containerName commonv1.AgentContainerName, newEnvVar *v1.EnvVar) { +func (_m *EnvVarManager) AddEnvVarToContainer(containerName common.AgentContainerName, newEnvVar *v1.EnvVar) { isInitContainer := false for _, initContainerName := range initContainerNames { if containerName == initContainerName { @@ -38,14 +38,14 @@ func (_m *EnvVarManager) AddEnvVarToContainer(containerName commonv1.AgentContai } // AddEnvVarToContainers provides a mock function with given fields: containerNames, newEnvVar -func (_m *EnvVarManager) AddEnvVarToContainers(containerNames []commonv1.AgentContainerName, newEnvVar *v1.EnvVar) { +func (_m *EnvVarManager) AddEnvVarToContainers(containerNames []common.AgentContainerName, newEnvVar *v1.EnvVar) { for _, containerName := range containerNames { _m.AddEnvVarToContainer(containerName, newEnvVar) } } // AddEnvVarToInitContainer provides a mock function with given fields: containerName, newEnvVar -func (_m *EnvVarManager) AddEnvVarToInitContainer(containerName commonv1.AgentContainerName, newEnvVar *v1.EnvVar) { +func (_m *EnvVarManager) AddEnvVarToInitContainer(containerName common.AgentContainerName, newEnvVar *v1.EnvVar) { for _, initContainerName := range initContainerNames { if containerName == initContainerName { _m.t.Logf("AddEnvVar to container %s key:%s value:%#v", containerName, newEnvVar.Name, newEnvVar.Value) @@ -55,7 +55,7 @@ func (_m *EnvVarManager) AddEnvVarToInitContainer(containerName commonv1.AgentCo } // AddEnvVarToContainerWithMergeFunc provides a mock function with given fields: containerName, newEnvVar, mergeFunc -func (_m *EnvVarManager) AddEnvVarToContainerWithMergeFunc(containerName commonv1.AgentContainerName, newEnvVar *v1.EnvVar, mergeFunc merger.EnvVarMergeFunction) error { +func (_m *EnvVarManager) AddEnvVarToContainerWithMergeFunc(containerName common.AgentContainerName, newEnvVar *v1.EnvVar, mergeFunc merger.EnvVarMergeFunction) error { found := false idFound := 0 for id, envVar := range _m.EnvVarsByC[containerName] { @@ -84,7 +84,7 @@ func (_m *EnvVarManager) AddEnvVarWithMergeFunc(newEnvVar *v1.EnvVar, mergeFunc // NewFakeEnvVarManager creates a new instance of EnvVarManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewFakeEnvVarManager(t testing.TB) *EnvVarManager { return &EnvVarManager{ - EnvVarsByC: make(map[commonv1.AgentContainerName][]*v1.EnvVar), + EnvVarsByC: make(map[common.AgentContainerName][]*v1.EnvVar), t: t, } } diff --git a/internal/controller/datadogagent/merger/fake/port_manager.go b/internal/controller/datadogagent/merger/fake/port_manager.go index 76d24880f..801f5c4bc 100644 --- a/internal/controller/datadogagent/merger/fake/port_manager.go +++ b/internal/controller/datadogagent/merger/fake/port_manager.go @@ -8,7 +8,7 @@ package fake import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + common "github.com/DataDog/datadog-operator/api/datadoghq/common" merger "github.com/DataDog/datadog-operator/internal/controller/datadogagent/merger" v1 "k8s.io/api/core/v1" @@ -16,19 +16,19 @@ import ( // PortManager is an autogenerated mock type for the PortManager type type PortManager struct { - PortsByC map[commonv1.AgentContainerName][]*v1.ContainerPort + PortsByC map[common.AgentContainerName][]*v1.ContainerPort t testing.TB } // AddPortToContainer provides a mock function with given fields: containerName, newPort -func (_m *PortManager) AddPortToContainer(containerName commonv1.AgentContainerName, newPort *v1.ContainerPort) { +func (_m *PortManager) AddPortToContainer(containerName common.AgentContainerName, newPort *v1.ContainerPort) { _m.t.Logf("AddPortToContainer %s: %#v", newPort.Name, newPort.ContainerPort) _m.PortsByC[containerName] = append(_m.PortsByC[containerName], newPort) } // AddPortToContainerWithMergeFunc provides a mock function with given fields: containerName, newPort, mergeFunc -func (_m *PortManager) AddPortToContainerWithMergeFunc(containerName commonv1.AgentContainerName, newPort *v1.ContainerPort, mergeFunc merger.PortMergeFunction) error { +func (_m *PortManager) AddPortToContainerWithMergeFunc(containerName common.AgentContainerName, newPort *v1.ContainerPort, mergeFunc merger.PortMergeFunction) error { found := false idFound := 0 for id, Port := range _m.PortsByC[containerName] { @@ -52,7 +52,7 @@ func (_m *PortManager) AddPortToContainerWithMergeFunc(containerName commonv1.Ag // NewFakePortManager creates a new instance of PortManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewFakePortManager(t testing.TB) *PortManager { return &PortManager{ - PortsByC: make(map[commonv1.AgentContainerName][]*v1.ContainerPort), + PortsByC: make(map[common.AgentContainerName][]*v1.ContainerPort), t: t, } } diff --git a/internal/controller/datadogagent/merger/fake/security_context_manager.go b/internal/controller/datadogagent/merger/fake/security_context_manager.go index ff374f1bf..4fb498110 100644 --- a/internal/controller/datadogagent/merger/fake/security_context_manager.go +++ b/internal/controller/datadogagent/merger/fake/security_context_manager.go @@ -3,27 +3,27 @@ package fake import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" v1 "k8s.io/api/core/v1" ) // SecurityContextManager is a mock type for the SecurityContextManager type type SecurityContextManager struct { - CapabilitiesByC map[commonv1.AgentContainerName][]v1.Capability + CapabilitiesByC map[common.AgentContainerName][]v1.Capability t testing.TB } // AddCapabilitiesToContainer provides a mock function with given fields: capabilities, containerName -func (_m *SecurityContextManager) AddCapabilitiesToContainer(capabilities []v1.Capability, containerName commonv1.AgentContainerName) { +func (_m *SecurityContextManager) AddCapabilitiesToContainer(capabilities []v1.Capability, containerName common.AgentContainerName) { _m.CapabilitiesByC[containerName] = append(_m.CapabilitiesByC[containerName], capabilities...) } // NewFakeSecurityContextManager creates a new instance of SecurityContextManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewFakeSecurityContextManager(t testing.TB) *SecurityContextManager { return &SecurityContextManager{ - CapabilitiesByC: make(map[commonv1.AgentContainerName][]v1.Capability), + CapabilitiesByC: make(map[common.AgentContainerName][]v1.Capability), t: t, } } diff --git a/internal/controller/datadogagent/merger/fake/volume_mount_manager.go b/internal/controller/datadogagent/merger/fake/volume_mount_manager.go index 74c237ac8..db2d41469 100644 --- a/internal/controller/datadogagent/merger/fake/volume_mount_manager.go +++ b/internal/controller/datadogagent/merger/fake/volume_mount_manager.go @@ -3,17 +3,17 @@ package fake import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/merger" v1 "k8s.io/api/core/v1" ) -var initContainerNames = []commonv1.AgentContainerName{commonv1.InitConfigContainerName, commonv1.InitVolumeContainerName, commonv1.SeccompSetupContainerName} +var initContainerNames = []common.AgentContainerName{common.InitConfigContainerName, common.InitVolumeContainerName, common.SeccompSetupContainerName} // VolumeMountManager is an autogenerated mock type for the VolumeMountManager type type VolumeMountManager struct { - VolumeMountsByC map[commonv1.AgentContainerName][]*v1.VolumeMount + VolumeMountsByC map[common.AgentContainerName][]*v1.VolumeMount t testing.TB } @@ -24,7 +24,7 @@ func (_m *VolumeMountManager) AddVolumeMount(volumeMount *v1.VolumeMount) { } // AddVolumeMountToContainer provides a mock function with given fields: volumeMount, containerName -func (_m *VolumeMountManager) AddVolumeMountToContainer(volumeMount *v1.VolumeMount, containerName commonv1.AgentContainerName) { +func (_m *VolumeMountManager) AddVolumeMountToContainer(volumeMount *v1.VolumeMount, containerName common.AgentContainerName) { isInitContainer := false for _, initContainerName := range initContainerNames { if containerName == initContainerName { @@ -38,7 +38,7 @@ func (_m *VolumeMountManager) AddVolumeMountToContainer(volumeMount *v1.VolumeMo } // AddVolumeMountToInitContainer provides a mock function with given fields: volumeMount, containerName -func (_m *VolumeMountManager) AddVolumeMountToInitContainer(volumeMount *v1.VolumeMount, containerName commonv1.AgentContainerName) { +func (_m *VolumeMountManager) AddVolumeMountToInitContainer(volumeMount *v1.VolumeMount, containerName common.AgentContainerName) { for _, initContainerName := range initContainerNames { if containerName == initContainerName { _m.VolumeMountsByC[containerName] = append(_m.VolumeMountsByC[containerName], volumeMount) @@ -47,14 +47,14 @@ func (_m *VolumeMountManager) AddVolumeMountToInitContainer(volumeMount *v1.Volu } // AddVolumeMountToContainers provides a mock function with given fields: volume, volumeMount, containerNames -func (_m *VolumeMountManager) AddVolumeMountToContainers(volumeMount *v1.VolumeMount, containerNames []commonv1.AgentContainerName) { +func (_m *VolumeMountManager) AddVolumeMountToContainers(volumeMount *v1.VolumeMount, containerNames []common.AgentContainerName) { for _, c := range containerNames { _m.VolumeMountsByC[c] = append(_m.VolumeMountsByC[c], volumeMount) } } // AddVolumeMountToContainersWithMergeFunc provides a mock function with given fields: volume, volumeMount, containerNames, volumeMergeFunc, volumeMountMergeFunc -func (_m *VolumeMountManager) AddVolumeMountToContainersWithMergeFunc(volumeMount *v1.VolumeMount, containerNames []commonv1.AgentContainerName, volumeMountMergeFunc merger.VolumeMountMergeFunction) error { +func (_m *VolumeMountManager) AddVolumeMountToContainersWithMergeFunc(volumeMount *v1.VolumeMount, containerNames []common.AgentContainerName, volumeMountMergeFunc merger.VolumeMountMergeFunction) error { for _, cName := range containerNames { if err := _m.volumeMountMerge(cName, volumeMount, volumeMountMergeFunc); err != nil { return err @@ -64,11 +64,11 @@ func (_m *VolumeMountManager) AddVolumeMountToContainersWithMergeFunc(volumeMoun } // AddVolumeMountToContainerWithMergeFunc provides a mock function with given fields: volume, volumeMount, containerName, volumeMergeFunc, volumeMountMergeFunc -func (_m *VolumeMountManager) AddVolumeMountToContainerWithMergeFunc(volumeMount *v1.VolumeMount, containerName commonv1.AgentContainerName, volumeMountMergeFunc merger.VolumeMountMergeFunction) error { +func (_m *VolumeMountManager) AddVolumeMountToContainerWithMergeFunc(volumeMount *v1.VolumeMount, containerName common.AgentContainerName, volumeMountMergeFunc merger.VolumeMountMergeFunction) error { return _m.volumeMountMerge(containerName, volumeMount, volumeMountMergeFunc) } -func (_m *VolumeMountManager) volumeMountMerge(containerName commonv1.AgentContainerName, volume *v1.VolumeMount, volumeMergeFunc merger.VolumeMountMergeFunction) error { +func (_m *VolumeMountManager) volumeMountMerge(containerName common.AgentContainerName, volume *v1.VolumeMount, volumeMergeFunc merger.VolumeMountMergeFunction) error { found := false idFound := 0 for id, v := range _m.VolumeMountsByC[containerName] { @@ -92,7 +92,7 @@ func (_m *VolumeMountManager) volumeMountMerge(containerName commonv1.AgentConta // NewFakeVolumeMountManager creates a new instance of VolumeMountManager. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. func NewFakeVolumeMountManager(t testing.TB) *VolumeMountManager { return &VolumeMountManager{ - VolumeMountsByC: make(map[commonv1.AgentContainerName][]*v1.VolumeMount), + VolumeMountsByC: make(map[common.AgentContainerName][]*v1.VolumeMount), t: t, } } diff --git a/internal/controller/datadogagent/merger/port.go b/internal/controller/datadogagent/merger/port.go index 5e1509c65..b15fdd5a6 100644 --- a/internal/controller/datadogagent/merger/port.go +++ b/internal/controller/datadogagent/merger/port.go @@ -6,17 +6,17 @@ package merger import ( - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" corev1 "k8s.io/api/core/v1" ) // PortManager use to manage adding ports to a container in a PodTemplateSpec type PortManager interface { // AddPortToContainer use to add a port to a specific container present in the Pod. - AddPortToContainer(containerName commonv1.AgentContainerName, newPort *corev1.ContainerPort) + AddPortToContainer(containerName common.AgentContainerName, newPort *corev1.ContainerPort) // AddPortWithMergeFunc use to add a port to a specific container present in the Pod. // The way the Port is merge with an existing Port can be tune thank to the PortMergeFunction parameter. - AddPortToContainerWithMergeFunc(containerName commonv1.AgentContainerName, newPort *corev1.ContainerPort, mergeFunc PortMergeFunction) error + AddPortToContainerWithMergeFunc(containerName common.AgentContainerName, newPort *corev1.ContainerPort, mergeFunc PortMergeFunction) error } // NewPortManager return new instance of the PortManager @@ -30,11 +30,11 @@ type portManagerImpl struct { podTmpl *corev1.PodTemplateSpec } -func (impl *portManagerImpl) AddPortToContainer(containerName commonv1.AgentContainerName, newPort *corev1.ContainerPort) { +func (impl *portManagerImpl) AddPortToContainer(containerName common.AgentContainerName, newPort *corev1.ContainerPort) { _ = impl.AddPortToContainerWithMergeFunc(containerName, newPort, DefaultPortMergeFunction) } -func (impl *portManagerImpl) AddPortToContainerWithMergeFunc(containerName commonv1.AgentContainerName, newPort *corev1.ContainerPort, mergeFunc PortMergeFunction) error { +func (impl *portManagerImpl) AddPortToContainerWithMergeFunc(containerName common.AgentContainerName, newPort *corev1.ContainerPort, mergeFunc PortMergeFunction) error { for id := range impl.podTmpl.Spec.Containers { if impl.podTmpl.Spec.Containers[id].Name == string(containerName) { _, err := AddPortToContainer(&impl.podTmpl.Spec.Containers[id], newPort, mergeFunc) diff --git a/internal/controller/datadogagent/merger/security_context.go b/internal/controller/datadogagent/merger/security_context.go index 8a5a29685..a814ea2fa 100644 --- a/internal/controller/datadogagent/merger/security_context.go +++ b/internal/controller/datadogagent/merger/security_context.go @@ -8,14 +8,14 @@ package merger import ( "sort" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" corev1 "k8s.io/api/core/v1" ) // SecurityContextManager use to add Security Context settings to containers. type SecurityContextManager interface { // AddCapabilitiesToContainer Adds capabilities to a container in the PodTemplate. - AddCapabilitiesToContainer(capabilities []corev1.Capability, containerName commonv1.AgentContainerName) + AddCapabilitiesToContainer(capabilities []corev1.Capability, containerName common.AgentContainerName) } // NewSecurityContextManager returns a new instance of the SecurityContextManager @@ -29,7 +29,7 @@ type securityContextManagerImpl struct { podTmpl *corev1.PodTemplateSpec } -func (impl *securityContextManagerImpl) AddCapabilitiesToContainer(capabilities []corev1.Capability, containerName commonv1.AgentContainerName) { +func (impl *securityContextManagerImpl) AddCapabilitiesToContainer(capabilities []corev1.Capability, containerName common.AgentContainerName) { for i, container := range impl.podTmpl.Spec.Containers { if container.Name == string(containerName) { if container.SecurityContext == nil { diff --git a/internal/controller/datadogagent/merger/security_context_test.go b/internal/controller/datadogagent/merger/security_context_test.go index f8937ab89..346d72e0b 100644 --- a/internal/controller/datadogagent/merger/security_context_test.go +++ b/internal/controller/datadogagent/merger/security_context_test.go @@ -9,7 +9,7 @@ import ( "reflect" "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" ) @@ -19,14 +19,14 @@ func TestAddCapabilitiesToContainer(t *testing.T) { name string existingContainers []corev1.Container capabilities []corev1.Capability - addToContainerWithName commonv1.AgentContainerName - expectedCapabilities map[commonv1.AgentContainerName][]corev1.Capability + addToContainerWithName common.AgentContainerName + expectedCapabilities map[common.AgentContainerName][]corev1.Capability }{ { name: "Add to container without capabilities defined", existingContainers: []corev1.Container{ { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), SecurityContext: nil, }, }, @@ -34,9 +34,9 @@ func TestAddCapabilitiesToContainer(t *testing.T) { "AUDIT_CONTROL", "AUDIT_READ", }, - addToContainerWithName: commonv1.TraceAgentContainerName, - expectedCapabilities: map[commonv1.AgentContainerName][]corev1.Capability{ - commonv1.TraceAgentContainerName: { + addToContainerWithName: common.TraceAgentContainerName, + expectedCapabilities: map[common.AgentContainerName][]corev1.Capability{ + common.TraceAgentContainerName: { "AUDIT_CONTROL", "AUDIT_READ", }, @@ -46,7 +46,7 @@ func TestAddCapabilitiesToContainer(t *testing.T) { name: "Add to container with some capabilities already defined", existingContainers: []corev1.Container{ { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), SecurityContext: &corev1.SecurityContext{ Capabilities: &corev1.Capabilities{ Add: []corev1.Capability{ @@ -59,9 +59,9 @@ func TestAddCapabilitiesToContainer(t *testing.T) { capabilities: []corev1.Capability{ "AUDIT_READ", }, - addToContainerWithName: commonv1.TraceAgentContainerName, - expectedCapabilities: map[commonv1.AgentContainerName][]corev1.Capability{ - commonv1.TraceAgentContainerName: { + addToContainerWithName: common.TraceAgentContainerName, + expectedCapabilities: map[common.AgentContainerName][]corev1.Capability{ + common.TraceAgentContainerName: { "AUDIT_CONTROL", "AUDIT_READ", }, @@ -71,11 +71,11 @@ func TestAddCapabilitiesToContainer(t *testing.T) { name: "Add to specific container when there are multiple defined", existingContainers: []corev1.Container{ { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), SecurityContext: nil, }, { - Name: string(commonv1.SystemProbeContainerName), + Name: string(common.SystemProbeContainerName), SecurityContext: nil, }, }, @@ -83,10 +83,10 @@ func TestAddCapabilitiesToContainer(t *testing.T) { "AUDIT_CONTROL", "AUDIT_READ", }, - addToContainerWithName: commonv1.SystemProbeContainerName, - expectedCapabilities: map[commonv1.AgentContainerName][]corev1.Capability{ - commonv1.TraceAgentContainerName: nil, - commonv1.SystemProbeContainerName: { + addToContainerWithName: common.SystemProbeContainerName, + expectedCapabilities: map[common.AgentContainerName][]corev1.Capability{ + common.TraceAgentContainerName: nil, + common.SystemProbeContainerName: { "AUDIT_CONTROL", "AUDIT_READ", }, @@ -107,7 +107,7 @@ func TestAddCapabilitiesToContainer(t *testing.T) { securityContextManager.AddCapabilitiesToContainer(test.capabilities, test.addToContainerWithName) for _, container := range securityContextManager.podTmpl.Spec.Containers { - expectedCapabilities := test.expectedCapabilities[commonv1.AgentContainerName(container.Name)] + expectedCapabilities := test.expectedCapabilities[common.AgentContainerName(container.Name)] if len(expectedCapabilities) > 0 { assert.Equal(t, expectedCapabilities, container.SecurityContext.Capabilities.Add) } else { diff --git a/internal/controller/datadogagent/merger/utils.go b/internal/controller/datadogagent/merger/utils.go index e8436af5f..9963d432a 100644 --- a/internal/controller/datadogagent/merger/utils.go +++ b/internal/controller/datadogagent/merger/utils.go @@ -5,20 +5,20 @@ package merger -import commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" +import "github.com/DataDog/datadog-operator/api/datadoghq/common" // AllAgentContainers is a map of all agent containers -var AllAgentContainers = map[commonv1.AgentContainerName]struct{}{ +var AllAgentContainers = map[common.AgentContainerName]struct{}{ // Node agent containers - commonv1.CoreAgentContainerName: {}, - commonv1.TraceAgentContainerName: {}, - commonv1.ProcessAgentContainerName: {}, - commonv1.SecurityAgentContainerName: {}, - commonv1.SystemProbeContainerName: {}, - commonv1.OtelAgent: {}, + common.CoreAgentContainerName: {}, + common.TraceAgentContainerName: {}, + common.ProcessAgentContainerName: {}, + common.SecurityAgentContainerName: {}, + common.SystemProbeContainerName: {}, + common.OtelAgent: {}, // DCA containers - commonv1.ClusterAgentContainerName: {}, + common.ClusterAgentContainerName: {}, // CCR container name is equivalent to core agent container name // Single Agent container - commonv1.UnprivilegedSingleAgentContainerName: {}, + common.UnprivilegedSingleAgentContainerName: {}, } diff --git a/internal/controller/datadogagent/merger/volume_mount.go b/internal/controller/datadogagent/merger/volume_mount.go index 88cdb2300..806c2be15 100644 --- a/internal/controller/datadogagent/merger/volume_mount.go +++ b/internal/controller/datadogagent/merger/volume_mount.go @@ -6,7 +6,7 @@ package merger import ( - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" corev1 "k8s.io/api/core/v1" ) @@ -15,14 +15,14 @@ type VolumeMountManager interface { // Add the volumeMount to all containers of the PodTemplate. AddVolumeMount(volumeMount *corev1.VolumeMount) // Add the volumeMount to one container of the PodTemplate. - AddVolumeMountToContainer(volumeMount *corev1.VolumeMount, containerName commonv1.AgentContainerName) + AddVolumeMountToContainer(volumeMount *corev1.VolumeMount, containerName common.AgentContainerName) // Add the volumeMount to an init container pfo the PodTemplate. - AddVolumeMountToInitContainer(volumeMount *corev1.VolumeMount, containerName commonv1.AgentContainerName) + AddVolumeMountToInitContainer(volumeMount *corev1.VolumeMount, containerName common.AgentContainerName) // Add the volumeMount to a list of containers in the PodTemplate. - AddVolumeMountToContainers(volumeMount *corev1.VolumeMount, containerNames []commonv1.AgentContainerName) + AddVolumeMountToContainers(volumeMount *corev1.VolumeMount, containerNames []common.AgentContainerName) // Add the volumeMount to the container matching the containerName. // Provide merge functions if the merge is specific. - AddVolumeMountToContainerWithMergeFunc(volumeMount *corev1.VolumeMount, containerName commonv1.AgentContainerName, volumeMountMergeFunc VolumeMountMergeFunction) error + AddVolumeMountToContainerWithMergeFunc(volumeMount *corev1.VolumeMount, containerName common.AgentContainerName, volumeMountMergeFunc VolumeMountMergeFunction) error } // NewVolumeMountManager returns a new instance of the VolumeMountManager @@ -40,7 +40,7 @@ func (impl *volumeMountManagerImpl) AddVolumeMount(volumeMount *corev1.VolumeMou _ = impl.AddVolumeMountWithMergeFunc(volumeMount, DefaultVolumeMountMergeFunction) } -func (impl *volumeMountManagerImpl) AddVolumeMountToContainer(volumeMount *corev1.VolumeMount, containerName commonv1.AgentContainerName) { +func (impl *volumeMountManagerImpl) AddVolumeMountToContainer(volumeMount *corev1.VolumeMount, containerName common.AgentContainerName) { for id, container := range impl.podTmpl.Spec.Containers { if container.Name == string(containerName) { _, _ = AddVolumeMountToContainerWithMergeFunc(&impl.podTmpl.Spec.Containers[id], volumeMount, DefaultVolumeMountMergeFunction) @@ -48,7 +48,7 @@ func (impl *volumeMountManagerImpl) AddVolumeMountToContainer(volumeMount *corev } } -func (impl *volumeMountManagerImpl) AddVolumeMountToInitContainer(volumeMount *corev1.VolumeMount, containerName commonv1.AgentContainerName) { +func (impl *volumeMountManagerImpl) AddVolumeMountToInitContainer(volumeMount *corev1.VolumeMount, containerName common.AgentContainerName) { for id, container := range impl.podTmpl.Spec.InitContainers { if container.Name == string(containerName) { _, _ = AddVolumeMountToContainerWithMergeFunc(&impl.podTmpl.Spec.InitContainers[id], volumeMount, DefaultVolumeMountMergeFunction) @@ -56,7 +56,7 @@ func (impl *volumeMountManagerImpl) AddVolumeMountToInitContainer(volumeMount *c } } -func (impl *volumeMountManagerImpl) AddVolumeMountToContainers(volumeMount *corev1.VolumeMount, containerNames []commonv1.AgentContainerName) { +func (impl *volumeMountManagerImpl) AddVolumeMountToContainers(volumeMount *corev1.VolumeMount, containerNames []common.AgentContainerName) { for _, containerName := range containerNames { impl.AddVolumeMountToContainer(volumeMount, containerName) } @@ -64,7 +64,7 @@ func (impl *volumeMountManagerImpl) AddVolumeMountToContainers(volumeMount *core func (impl *volumeMountManagerImpl) AddVolumeMountWithMergeFunc(volumeMount *corev1.VolumeMount, volumeMountMergeFunc VolumeMountMergeFunction) error { for id, cont := range impl.podTmpl.Spec.Containers { - if _, ok := AllAgentContainers[commonv1.AgentContainerName(cont.Name)]; ok { + if _, ok := AllAgentContainers[common.AgentContainerName(cont.Name)]; ok { if _, err := AddVolumeMountToContainerWithMergeFunc(&impl.podTmpl.Spec.Containers[id], volumeMount, volumeMountMergeFunc); err != nil { return err } @@ -73,7 +73,7 @@ func (impl *volumeMountManagerImpl) AddVolumeMountWithMergeFunc(volumeMount *cor return nil } -func (impl *volumeMountManagerImpl) AddVolumeMountToContainerWithMergeFunc(volumeMount *corev1.VolumeMount, containerName commonv1.AgentContainerName, volumeMountMergeFunc VolumeMountMergeFunction) error { +func (impl *volumeMountManagerImpl) AddVolumeMountToContainerWithMergeFunc(volumeMount *corev1.VolumeMount, containerName common.AgentContainerName, volumeMountMergeFunc VolumeMountMergeFunction) error { for id, container := range impl.podTmpl.Spec.Containers { if container.Name == string(containerName) { _, err := AddVolumeMountToContainerWithMergeFunc(&impl.podTmpl.Spec.Containers[id], volumeMount, volumeMountMergeFunc) diff --git a/internal/controller/datadogagent/merger/volume_mount_test.go b/internal/controller/datadogagent/merger/volume_mount_test.go index dc4b79b76..6b915561a 100644 --- a/internal/controller/datadogagent/merger/volume_mount_test.go +++ b/internal/controller/datadogagent/merger/volume_mount_test.go @@ -9,7 +9,7 @@ import ( "reflect" "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/stretchr/testify/assert" corev1 "k8s.io/api/core/v1" ) @@ -140,19 +140,19 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), }, { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), }, { - Name: string(commonv1.ProcessAgentContainerName), + Name: string(common.ProcessAgentContainerName), }, { - Name: string(commonv1.SecurityAgentContainerName), + Name: string(common.SecurityAgentContainerName), }, { - Name: string(commonv1.SystemProbeContainerName), + Name: string(common.SystemProbeContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -162,13 +162,13 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers except fips should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), }, { - Name: string(commonv1.TraceAgentContainerName), + Name: string(common.TraceAgentContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -178,7 +178,7 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterAgentContainerName), + Name: string(common.ClusterAgentContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -188,10 +188,10 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers except fips should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterAgentContainerName), + Name: string(common.ClusterAgentContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -201,7 +201,7 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterChecksRunnersContainerName), + Name: string(common.ClusterChecksRunnersContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -211,10 +211,10 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers except fips should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.ClusterChecksRunnersContainerName), + Name: string(common.ClusterChecksRunnersContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -224,7 +224,7 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.UnprivilegedSingleAgentContainerName), + Name: string(common.UnprivilegedSingleAgentContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -234,10 +234,10 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { description: "all containers except fips should have volume mount added", containers: []corev1.Container{ { - Name: string(commonv1.UnprivilegedSingleAgentContainerName), + Name: string(common.UnprivilegedSingleAgentContainerName), }, { - Name: string(commonv1.FIPSProxyContainerName), + Name: string(common.FIPSProxyContainerName), }, }, want: []corev1.VolumeMount{*volumemountFoo}, @@ -253,7 +253,7 @@ func TestAddVolumeMountWithMergeFunc(t *testing.T) { assert.NoError(t, err) for _, cont := range manager.podTmpl.Spec.Containers { - if cont.Name == string(commonv1.FIPSProxyContainerName) { + if cont.Name == string(common.FIPSProxyContainerName) { assert.Len(t, cont.VolumeMounts, 0) } else { assert.Contains(t, cont.VolumeMounts, tt.want) diff --git a/internal/controller/datadogagent/object/volume/volumes.go b/internal/controller/datadogagent/object/volume/volumes.go index c6feef2b4..2438d697a 100644 --- a/internal/controller/datadogagent/object/volume/volumes.go +++ b/internal/controller/datadogagent/object/volume/volumes.go @@ -13,7 +13,6 @@ import ( corev1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" ) @@ -62,7 +61,7 @@ func GetVolumesEmptyDir(volumeName, mountPath string, readOnly bool) (corev1.Vol // common ConfigMapConfig // GetVolumesFromConfigMap returns a Volume and VolumeMount from a ConfigMapConfig. It is only used in the features that are within the conf.d/ file path -func GetVolumesFromConfigMap(configMap *apicommonv1.ConfigMapConfig, volumeName, defaultCMName, configFolder string) (corev1.Volume, corev1.VolumeMount) { +func GetVolumesFromConfigMap(configMap *v2alpha1.ConfigMapConfig, volumeName, defaultCMName, configFolder string) (corev1.Volume, corev1.VolumeMount) { volume := GetVolumeFromConfigMap( configMap, defaultCMName, @@ -78,7 +77,7 @@ func GetVolumesFromConfigMap(configMap *apicommonv1.ConfigMapConfig, volumeName, } // GetVolumeFromConfigMap returns a Volume from a common ConfigMapConfig. -func GetVolumeFromConfigMap(configMap *apicommonv1.ConfigMapConfig, defaultConfigMapName, volumeName string) corev1.Volume { +func GetVolumeFromConfigMap(configMap *v2alpha1.ConfigMapConfig, defaultConfigMapName, volumeName string) corev1.Volume { cmName := defaultConfigMapName if configMap != nil && len(configMap.Name) > 0 { cmName = configMap.Name diff --git a/internal/controller/datadogagent/override/container.go b/internal/controller/datadogagent/override/container.go index ae5ca148a..8bccae1f9 100644 --- a/internal/controller/datadogagent/override/container.go +++ b/internal/controller/datadogagent/override/container.go @@ -10,7 +10,6 @@ import ( "strconv" "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -19,7 +18,7 @@ import ( ) // Container use to override a corev1.Container with a 2alpha1.DatadogAgentGenericContainer. -func Container(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, override *v2alpha1.DatadogAgentGenericContainer) { +func Container(containerName common.AgentContainerName, manager feature.PodTemplateManagers, override *v2alpha1.DatadogAgentGenericContainer) { if override == nil { return } @@ -54,7 +53,7 @@ func Container(containerName commonv1.AgentContainerName, manager feature.PodTem } } -func overrideLogLevel(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, logLevel string) { +func overrideLogLevel(containerName common.AgentContainerName, manager feature.PodTemplateManagers, logLevel string) { manager.EnvVar().AddEnvVarToContainer( containerName, &corev1.EnvVar{ @@ -64,7 +63,7 @@ func overrideLogLevel(containerName commonv1.AgentContainerName, manager feature ) } -func addEnvsToContainer(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, envs []corev1.EnvVar) { +func addEnvsToContainer(containerName common.AgentContainerName, manager feature.PodTemplateManagers, envs []corev1.EnvVar) { for _, env := range envs { e := env manager.EnvVar().AddEnvVarToContainer(containerName, &e) @@ -72,21 +71,21 @@ func addEnvsToContainer(containerName commonv1.AgentContainerName, manager featu } -func addEnvsToInitContainer(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, envs []corev1.EnvVar) { +func addEnvsToInitContainer(containerName common.AgentContainerName, manager feature.PodTemplateManagers, envs []corev1.EnvVar) { for _, env := range envs { e := env manager.EnvVar().AddEnvVarToInitContainer(containerName, &e) } } -func addVolMountsToContainer(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, mounts []corev1.VolumeMount) { +func addVolMountsToContainer(containerName common.AgentContainerName, manager feature.PodTemplateManagers, mounts []corev1.VolumeMount) { for _, mount := range mounts { m := mount manager.VolumeMount().AddVolumeMountToContainer(&m, containerName) } } -func addVolMountsToInitContainer(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, mounts []corev1.VolumeMount) { +func addVolMountsToInitContainer(containerName common.AgentContainerName, manager feature.PodTemplateManagers, mounts []corev1.VolumeMount) { for _, mount := range mounts { m := mount manager.VolumeMount().AddVolumeMountToInitContainer(&m, containerName) @@ -94,7 +93,7 @@ func addVolMountsToInitContainer(containerName commonv1.AgentContainerName, mana } } -func addHealthPort(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, healthPort int32) { +func addHealthPort(containerName common.AgentContainerName, manager feature.PodTemplateManagers, healthPort int32) { manager.EnvVar().AddEnvVarToContainer( containerName, &corev1.EnvVar{ @@ -164,9 +163,9 @@ func overrideInitContainer(initContainer *corev1.Container, override *v2alpha1.D } } -func overrideSeccompProfile(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, override *v2alpha1.DatadogAgentGenericContainer) { +func overrideSeccompProfile(containerName common.AgentContainerName, manager feature.PodTemplateManagers, override *v2alpha1.DatadogAgentGenericContainer) { // NOTE: for now, only support custom Seccomp Profiles on the System Probe - if containerName == commonv1.SystemProbeContainerName { + if containerName == common.SystemProbeContainerName { if override.SeccompConfig != nil && override.SeccompConfig.CustomRootPath != nil { vol := corev1.Volume{ Name: common.SeccompRootVolumeName, @@ -207,7 +206,7 @@ func overrideSeccompProfile(containerName commonv1.AgentContainerName, manager f } } -func overrideAppArmorProfile(containerName commonv1.AgentContainerName, manager feature.PodTemplateManagers, override *v2alpha1.DatadogAgentGenericContainer) { +func overrideAppArmorProfile(containerName common.AgentContainerName, manager feature.PodTemplateManagers, override *v2alpha1.DatadogAgentGenericContainer) { if override.AppArmorProfileName != nil { var annotation string if override.Name != nil { @@ -224,8 +223,8 @@ func overrideReadinessProbe(readinessProbeOverride *corev1.Probe) *corev1.Probe // Add default httpGet probeHandler if probeHandler is not configured in readinessProbe override if !hasProbeHandler(readinessProbeOverride) { readinessProbeOverride.HTTPGet = &corev1.HTTPGetAction{ - Path: common.DefaultReadinessProbeHTTPPath, - Port: intstr.IntOrString{IntVal: common.DefaultAgentHealthPort}} + Path: v2alpha1.DefaultReadinessProbeHTTPPath, + Port: intstr.IntOrString{IntVal: v2alpha1.DefaultAgentHealthPort}} } return readinessProbeOverride } @@ -234,8 +233,8 @@ func overrideLivenessProbe(livenessProbeOverride *corev1.Probe) *corev1.Probe { // Add default httpGet probeHandler if probeHandler is not configured in livenessProbe override if !hasProbeHandler(livenessProbeOverride) { livenessProbeOverride.HTTPGet = &corev1.HTTPGetAction{ - Path: common.DefaultLivenessProbeHTTPPath, - Port: intstr.IntOrString{IntVal: common.DefaultAgentHealthPort}} + Path: v2alpha1.DefaultLivenessProbeHTTPPath, + Port: intstr.IntOrString{IntVal: v2alpha1.DefaultAgentHealthPort}} } return livenessProbeOverride } diff --git a/internal/controller/datadogagent/override/container_test.go b/internal/controller/datadogagent/override/container_test.go index e8d970cdd..e4d9906d5 100644 --- a/internal/controller/datadogagent/override/container_test.go +++ b/internal/controller/datadogagent/override/container_test.go @@ -11,7 +11,6 @@ import ( "testing" "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature/fake" @@ -24,27 +23,27 @@ import ( func TestContainer(t *testing.T) { agentContainer := &corev1.Container{ - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), } initVolContainer := &corev1.Container{ - Name: string(commonv1.InitVolumeContainerName), + Name: string(common.InitVolumeContainerName), } initConfigContainer := &corev1.Container{ - Name: string(commonv1.InitConfigContainerName), + Name: string(common.InitConfigContainerName), } systemProbeContainer := &corev1.Container{ - Name: string(commonv1.SystemProbeContainerName), + Name: string(common.SystemProbeContainerName), } tests := []struct { name string - containerName commonv1.AgentContainerName + containerName common.AgentContainerName existingManager func() *fake.PodTemplateManagers override v2alpha1.DatadogAgentGenericContainer validateManager func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) }{ { name: "override container name", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -63,7 +62,7 @@ func TestContainer(t *testing.T) { }, { name: "override log level", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -75,7 +74,7 @@ func TestContainer(t *testing.T) { LogLevel: apiutils.NewStringPointer("debug"), }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - envs := manager.EnvVarMgr.EnvVarsByC[commonv1.CoreAgentContainerName] + envs := manager.EnvVarMgr.EnvVarsByC[common.CoreAgentContainerName] expectedEnvs := []*corev1.EnvVar{ { Name: common.DDLogLevel, @@ -87,7 +86,7 @@ func TestContainer(t *testing.T) { }, { name: "add envs", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { manager := fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -95,7 +94,7 @@ func TestContainer(t *testing.T) { }, }) manager.EnvVar().AddEnvVarToContainer( - commonv1.CoreAgentContainerName, + common.CoreAgentContainerName, &corev1.EnvVar{ Name: "existing-env", Value: "some-val", @@ -116,7 +115,7 @@ func TestContainer(t *testing.T) { }, }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - envs := manager.EnvVarMgr.EnvVarsByC[commonv1.CoreAgentContainerName] + envs := manager.EnvVarMgr.EnvVarsByC[common.CoreAgentContainerName] expectedEnvs := []*corev1.EnvVar{ { Name: "existing-env", @@ -136,7 +135,7 @@ func TestContainer(t *testing.T) { }, { name: "add volume mounts", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { manager := fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -147,7 +146,7 @@ func TestContainer(t *testing.T) { &corev1.VolumeMount{ Name: "existing-volume-mount", }, - commonv1.CoreAgentContainerName, + common.CoreAgentContainerName, ) return manager }, @@ -162,7 +161,7 @@ func TestContainer(t *testing.T) { }, }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - mounts := manager.VolumeMountMgr.VolumeMountsByC[commonv1.CoreAgentContainerName] + mounts := manager.VolumeMountMgr.VolumeMountsByC[common.CoreAgentContainerName] expectedMounts := []*corev1.VolumeMount{ { Name: "existing-volume-mount", @@ -179,7 +178,7 @@ func TestContainer(t *testing.T) { }, { name: "override resources - when there are none defined", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -214,13 +213,13 @@ func TestContainer(t *testing.T) { }, { name: "override resources - when there are some defined", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ Containers: []corev1.Container{ { - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), Resources: corev1.ResourceRequirements{ Limits: map[corev1.ResourceName]resource.Quantity{ corev1.ResourceCPU: *resource.NewQuantity(2, resource.DecimalSI), // Not overridden, should be kept @@ -265,13 +264,13 @@ func TestContainer(t *testing.T) { }, { name: "override resources - when the override specifies a 0", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ Containers: []corev1.Container{ { - Name: string(commonv1.CoreAgentContainerName), + Name: string(common.CoreAgentContainerName), Resources: corev1.ResourceRequirements{ Limits: map[corev1.ResourceName]resource.Quantity{ corev1.ResourceCPU: *resource.NewQuantity(2, resource.DecimalSI), // Not overridden, should be kept @@ -313,7 +312,7 @@ func TestContainer(t *testing.T) { }, { name: "override command", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -332,7 +331,7 @@ func TestContainer(t *testing.T) { }, { name: "override args", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -351,7 +350,7 @@ func TestContainer(t *testing.T) { }, { name: "override health port", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -363,7 +362,7 @@ func TestContainer(t *testing.T) { HealthPort: apiutils.NewInt32Pointer(1234), }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - envs := manager.EnvVarMgr.EnvVarsByC[commonv1.CoreAgentContainerName] + envs := manager.EnvVarMgr.EnvVarsByC[common.CoreAgentContainerName] expectedEnvs := []*corev1.EnvVar{ { Name: common.DDHealthPort, @@ -375,7 +374,7 @@ func TestContainer(t *testing.T) { }, { name: "override readiness probe with default HTTPGet", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -416,7 +415,7 @@ func TestContainer(t *testing.T) { }, { name: "override readiness probe with non-HTTPGet handler", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -459,7 +458,7 @@ func TestContainer(t *testing.T) { }, { name: "override readiness probe", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -508,7 +507,7 @@ func TestContainer(t *testing.T) { }, { name: "override liveness probe with default HTTPGet", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -549,7 +548,7 @@ func TestContainer(t *testing.T) { }, { name: "override liveness probe with non-HTTPGet handler", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -592,7 +591,7 @@ func TestContainer(t *testing.T) { }, { name: "override liveness probe", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -641,7 +640,7 @@ func TestContainer(t *testing.T) { }, { name: "override security context", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -666,7 +665,7 @@ func TestContainer(t *testing.T) { }, { name: "override seccomp root path", - containerName: commonv1.SystemProbeContainerName, + containerName: common.SystemProbeContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -695,7 +694,7 @@ func TestContainer(t *testing.T) { }, { name: "override seccomp profile", - containerName: commonv1.SystemProbeContainerName, + containerName: common.SystemProbeContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -706,7 +705,7 @@ func TestContainer(t *testing.T) { override: v2alpha1.DatadogAgentGenericContainer{ SeccompConfig: &v2alpha1.SeccompConfig{ CustomProfile: &v2alpha1.CustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom-seccomp-profile", }, }, @@ -730,7 +729,7 @@ func TestContainer(t *testing.T) { }, { name: "override app armor profile", - containerName: commonv1.CoreAgentContainerName, + containerName: common.CoreAgentContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -742,13 +741,13 @@ func TestContainer(t *testing.T) { AppArmorProfileName: apiutils.NewStringPointer("my-app-armor-profile"), }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - annotation := fmt.Sprintf("%s/%s", common.AppArmorAnnotationKey, commonv1.CoreAgentContainerName) + annotation := fmt.Sprintf("%s/%s", common.AppArmorAnnotationKey, common.CoreAgentContainerName) assert.Equal(t, "my-app-armor-profile", manager.AnnotationMgr.Annotations[annotation]) }, }, { name: "override initContainer name", - containerName: commonv1.InitVolumeContainerName, + containerName: common.InitVolumeContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -767,7 +766,7 @@ func TestContainer(t *testing.T) { }, { name: "add initContainer envs", - containerName: commonv1.InitVolumeContainerName, + containerName: common.InitVolumeContainerName, existingManager: func() *fake.PodTemplateManagers { manager := fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -775,7 +774,7 @@ func TestContainer(t *testing.T) { }, }) manager.EnvVar().AddEnvVarToInitContainer( - commonv1.InitVolumeContainerName, + common.InitVolumeContainerName, &corev1.EnvVar{ Name: "existing-env", Value: "some-val", @@ -796,7 +795,7 @@ func TestContainer(t *testing.T) { }, }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - envs := manager.EnvVarMgr.EnvVarsByC[commonv1.InitVolumeContainerName] + envs := manager.EnvVarMgr.EnvVarsByC[common.InitVolumeContainerName] expectedEnvs := []*corev1.EnvVar{ { Name: "existing-env", @@ -816,7 +815,7 @@ func TestContainer(t *testing.T) { }, { name: "add initContainer volume mounts", - containerName: commonv1.InitVolumeContainerName, + containerName: common.InitVolumeContainerName, existingManager: func() *fake.PodTemplateManagers { manager := fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -827,7 +826,7 @@ func TestContainer(t *testing.T) { &corev1.VolumeMount{ Name: "existing-init-container-volume-mount", }, - commonv1.InitVolumeContainerName, + common.InitVolumeContainerName, ) return manager }, @@ -842,7 +841,7 @@ func TestContainer(t *testing.T) { }, }, validateManager: func(t *testing.T, manager *fake.PodTemplateManagers, containerName string) { - mounts := manager.VolumeMountMgr.VolumeMountsByC[commonv1.InitVolumeContainerName] + mounts := manager.VolumeMountMgr.VolumeMountsByC[common.InitVolumeContainerName] expectedMounts := []*corev1.VolumeMount{ { Name: "existing-init-container-volume-mount", @@ -859,7 +858,7 @@ func TestContainer(t *testing.T) { }, { name: "override initContainer resources", - containerName: commonv1.InitConfigContainerName, + containerName: common.InitConfigContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ @@ -898,7 +897,7 @@ func TestContainer(t *testing.T) { }, { name: "override initContainer security context", - containerName: commonv1.InitConfigContainerName, + containerName: common.InitConfigContainerName, existingManager: func() *fake.PodTemplateManagers { return fake.NewPodTemplateManagers(t, corev1.PodTemplateSpec{ Spec: corev1.PodSpec{ diff --git a/internal/controller/datadogagent/override/daemonset_test.go b/internal/controller/datadogagent/override/daemonset_test.go index b9bf949fb..b965259b2 100644 --- a/internal/controller/datadogagent/override/daemonset_test.go +++ b/internal/controller/datadogagent/override/daemonset_test.go @@ -8,7 +8,7 @@ package override import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" + "github.com/DataDog/datadog-operator/api/datadoghq/common" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/stretchr/testify/assert" @@ -145,9 +145,9 @@ func makeDaemonSet(strategyType *string, strategyMaxUnavailable *string, strateg func makeOverride(strategyType *string, strategyMaxUnavailable *string, strategyMaxSurge *string) v2alpha1.DatadogAgentComponentOverride { override := v2alpha1.DatadogAgentComponentOverride{ - UpdateStrategy: &commonv1.UpdateStrategy{ + UpdateStrategy: &common.UpdateStrategy{ Type: "", - RollingUpdate: &commonv1.RollingUpdate{ + RollingUpdate: &common.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{}, MaxSurge: &intstr.IntOrString{}, }, diff --git a/internal/controller/datadogagent/override/dependencies_test.go b/internal/controller/datadogagent/override/dependencies_test.go index 661ae3f8b..d2963c380 100644 --- a/internal/controller/datadogagent/override/dependencies_test.go +++ b/internal/controller/datadogagent/override/dependencies_test.go @@ -8,7 +8,6 @@ package override import ( "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/dependencies" @@ -51,7 +50,7 @@ func TestDependencies(t *testing.T) { Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { ExtraConfd: &v2alpha1.MultiCustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "cmName", }, }, @@ -85,7 +84,7 @@ func TestDependencies(t *testing.T) { Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { ExtraChecksd: &v2alpha1.MultiCustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "cmName", }, }, diff --git a/internal/controller/datadogagent/override/fips.go b/internal/controller/datadogagent/override/fips.go index 47a933076..4ec143b0b 100644 --- a/internal/controller/datadogagent/override/fips.go +++ b/internal/controller/datadogagent/override/fips.go @@ -10,7 +10,6 @@ import ( "strconv" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" @@ -32,20 +31,20 @@ func applyFIPSConfig(logger logr.Logger, manager feature.PodTemplateManagers, dd // Add FIPS env vars to all containers except System Probe for _, cont := range manager.PodTemplateSpec().Spec.Containers { - if cont.Name != string(common.SystemProbeContainerName) { - manager.EnvVar().AddEnvVarToContainer(common.AgentContainerName(cont.Name), &corev1.EnvVar{ + if cont.Name != string(apicommon.SystemProbeContainerName) { + manager.EnvVar().AddEnvVarToContainer(apicommon.AgentContainerName(cont.Name), &corev1.EnvVar{ Name: apicommon.DDFIPSEnabled, Value: "true", }) - manager.EnvVar().AddEnvVarToContainer(common.AgentContainerName(cont.Name), &corev1.EnvVar{ + manager.EnvVar().AddEnvVarToContainer(apicommon.AgentContainerName(cont.Name), &corev1.EnvVar{ Name: apicommon.DDFIPSPortRangeStart, Value: strconv.Itoa(int(*fipsConfig.Port)), }) - manager.EnvVar().AddEnvVarToContainer(common.AgentContainerName(cont.Name), &corev1.EnvVar{ + manager.EnvVar().AddEnvVarToContainer(apicommon.AgentContainerName(cont.Name), &corev1.EnvVar{ Name: apicommon.DDFIPSUseHTTPS, Value: apiutils.BoolToString(fipsConfig.UseHTTPS), }) - manager.EnvVar().AddEnvVarToContainer(common.AgentContainerName(cont.Name), &corev1.EnvVar{ + manager.EnvVar().AddEnvVarToContainer(apicommon.AgentContainerName(cont.Name), &corev1.EnvVar{ Name: apicommon.DDFIPSLocalAddress, Value: *fipsConfig.LocalAddress, }) @@ -55,7 +54,7 @@ func applyFIPSConfig(logger logr.Logger, manager feature.PodTemplateManagers, dd // Configure FIPS container fipsContainer := getFIPSProxyContainer(fipsConfig) - image := apicommon.GetImage(fipsConfig.Image, globalConfig.Registry) + image := v2alpha1.GetImage(fipsConfig.Image, globalConfig.Registry) fipsContainer.Image = image if fipsConfig.Image.PullPolicy != nil { fipsContainer.ImagePullPolicy = *fipsConfig.Image.PullPolicy @@ -119,8 +118,8 @@ func applyFIPSConfig(logger logr.Logger, manager feature.PodTemplateManagers, dd resourcesManager.Store().AddOrUpdate(kubernetes.ConfigMapKind, cm) } } - manager.VolumeMount().AddVolumeMountToContainer(&volMount, common.CoreAgentContainerName) - manager.VolumeMount().AddVolumeMountToContainer(&volMount, common.FIPSProxyContainerName) + manager.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.CoreAgentContainerName) + manager.VolumeMount().AddVolumeMountToContainer(&volMount, apicommon.FIPSProxyContainerName) } manager.Volume().AddVolume(&vol) @@ -131,7 +130,7 @@ func applyFIPSConfig(logger logr.Logger, manager feature.PodTemplateManagers, dd func getFIPSProxyContainer(fipsConfig *v2alpha1.FIPSConfig) corev1.Container { fipsContainer := corev1.Container{ - Name: string(common.FIPSProxyContainerName), + Name: string(apicommon.FIPSProxyContainerName), ImagePullPolicy: corev1.PullIfNotPresent, Ports: getFIPSPorts(fipsConfig), Env: []corev1.EnvVar{ diff --git a/internal/controller/datadogagent/override/fips_test.go b/internal/controller/datadogagent/override/fips_test.go index c9e4de786..8ee71d1c1 100644 --- a/internal/controller/datadogagent/override/fips_test.go +++ b/internal/controller/datadogagent/override/fips_test.go @@ -11,7 +11,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -37,13 +36,13 @@ func Test_ApplyFIPSConfig(t *testing.T) { } agentContainer := &corev1.Container{ - Name: string(apicommonv1.CoreAgentContainerName), + Name: string(apicommon.CoreAgentContainerName), } processAgentContainer := &corev1.Container{ - Name: string(apicommonv1.ProcessAgentContainerName), + Name: string(apicommon.ProcessAgentContainerName), } systemProbeContainer := &corev1.Container{ - Name: string(apicommonv1.SystemProbeContainerName), + Name: string(apicommon.SystemProbeContainerName), } customConfig := `global @@ -105,7 +104,7 @@ defaults dda: v2alpha1test.NewDatadogAgentBuilder(). WithFIPS(v2alpha1.FIPSConfig{ Enabled: apiutils.NewBoolPointer(true), - Image: &apicommonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "registry/custom:tag", }, }). @@ -170,7 +169,7 @@ defaults WithFIPS(v2alpha1.FIPSConfig{ Enabled: apiutils.NewBoolPointer(true), CustomFIPSConfig: &v2alpha1.CustomConfig{ - ConfigMap: &apicommonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "foo", Items: []corev1.KeyToPath{ { @@ -333,9 +332,9 @@ func checkFIPSContainerEnvVars(t testing.TB, mgr *fake.PodTemplateManagers) { } func checkComponentContainerEnvVars(t testing.TB, mgr *fake.PodTemplateManagers, port int) { - coreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.CoreAgentContainerName] - processAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.ProcessAgentContainerName] - systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.SystemProbeContainerName] + coreAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.CoreAgentContainerName] + processAgentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.ProcessAgentContainerName] + systemProbeEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.SystemProbeContainerName] expectedEnvVars := getExpectedComponentContainerEnvVars(port) assert.True(t, apiutils.IsEqualStruct(coreAgentEnvVars, expectedEnvVars), "Core agent container envvars \ndiff = %s", cmp.Diff(coreAgentEnvVars, expectedEnvVars)) @@ -350,10 +349,10 @@ func checkVolume(t testing.TB, mgr *fake.PodTemplateManagers, customConfig bool) } func checkVolumeMounts(t testing.TB, mgr *fake.PodTemplateManagers, customConfig bool) { - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] - processAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ProcessAgentContainerName] - systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.SystemProbeContainerName] - fipsVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.FIPSProxyContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] + processAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ProcessAgentContainerName] + systemProbeVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.SystemProbeContainerName] + fipsVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.FIPSProxyContainerName] expectedVolumeMounts := getExpectedFIPSVolumeMounts() if !customConfig { expectedVolumeMounts = nil diff --git a/internal/controller/datadogagent/override/global.go b/internal/controller/datadogagent/override/global.go index b99f74ce1..c84538e49 100644 --- a/internal/controller/datadogagent/override/global.go +++ b/internal/controller/datadogagent/override/global.go @@ -11,7 +11,6 @@ import ( "path/filepath" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/component/objects" @@ -238,19 +237,19 @@ func applyGlobalSettings(logger logr.Logger, manager feature.PodTemplateManagers if singleContainerStrategyEnabled { manager.VolumeMount().AddVolumeMountToContainers( &kubeletVolMount, - []apicommonv1.AgentContainerName{ - apicommonv1.UnprivilegedSingleAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.UnprivilegedSingleAgentContainerName, }, ) manager.Volume().AddVolume(&kubeletVol) } else { manager.VolumeMount().AddVolumeMountToContainers( &kubeletVolMount, - []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, - apicommonv1.TraceAgentContainerName, - apicommonv1.SecurityAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.TraceAgentContainerName, + apicommon.SecurityAgentContainerName, }, ) manager.Volume().AddVolume(&kubeletVol) @@ -287,19 +286,19 @@ func applyGlobalSettings(logger logr.Logger, manager feature.PodTemplateManagers if singleContainerStrategyEnabled { manager.VolumeMount().AddVolumeMountToContainers( &runtimeVolMount, - []apicommonv1.AgentContainerName{ - apicommonv1.UnprivilegedSingleAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.UnprivilegedSingleAgentContainerName, }, ) manager.Volume().AddVolume(&runtimeVol) } else { manager.VolumeMount().AddVolumeMountToContainers( &runtimeVolMount, - []apicommonv1.AgentContainerName{ - apicommonv1.CoreAgentContainerName, - apicommonv1.ProcessAgentContainerName, - apicommonv1.TraceAgentContainerName, - apicommonv1.SecurityAgentContainerName, + []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.TraceAgentContainerName, + apicommon.SecurityAgentContainerName, }, ) manager.Volume().AddVolume(&runtimeVol) diff --git a/internal/controller/datadogagent/override/global_test.go b/internal/controller/datadogagent/override/global_test.go index 9f5cec553..54d49ea9d 100644 --- a/internal/controller/datadogagent/override/global_test.go +++ b/internal/controller/datadogagent/override/global_test.go @@ -9,8 +9,6 @@ import ( "testing" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - - apicommonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" v2alpha1test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -134,9 +132,9 @@ func TestNodeAgentComponenGlobalSettings(t *testing.T) { func assertAll(t testing.TB, mgrInterface feature.PodTemplateManagers, expectedEnvVars []*corev1.EnvVar, expectedVolumes []*corev1.Volume, expectedVolumeMounts []*corev1.VolumeMount) { mgr := mgrInterface.(*fake.PodTemplateManagers) - coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.CoreAgentContainerName] - traceAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.TraceAgentContainerName] - processAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.ProcessAgentContainerName] + coreAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.CoreAgentContainerName] + traceAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.TraceAgentContainerName] + processAgentVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.ProcessAgentContainerName] assert.True(t, apiutils.IsEqualStruct(coreAgentVolumeMounts, expectedVolumeMounts), "Volume mounts \ndiff = %s", cmp.Diff(coreAgentVolumeMounts, []*corev1.VolumeMount(nil))) assert.True(t, apiutils.IsEqualStruct(traceAgentVolumeMounts, expectedVolumeMounts), "Volume mounts \ndiff = %s", cmp.Diff(traceAgentVolumeMounts, []*corev1.VolumeMount(nil))) @@ -145,21 +143,21 @@ func assertAll(t testing.TB, mgrInterface feature.PodTemplateManagers, expectedE volumes := mgr.VolumeMgr.Volumes assert.True(t, apiutils.IsEqualStruct(volumes, expectedVolumes), "Volumes \ndiff = %s", cmp.Diff(volumes, []*corev1.Volume{})) - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, expectedEnvVars), "Agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, expectedEnvVars)) } func assertAllAgentSingleContainer(t testing.TB, mgrInterface feature.PodTemplateManagers, expectedEnvVars []*corev1.EnvVar, expectedVolumes []*corev1.Volume, expectedVolumeMounts []*corev1.VolumeMount) { mgr := mgrInterface.(*fake.PodTemplateManagers) - agentSingleContainerVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommonv1.UnprivilegedSingleAgentContainerName] + agentSingleContainerVolumeMounts := mgr.VolumeMountMgr.VolumeMountsByC[apicommon.UnprivilegedSingleAgentContainerName] assert.True(t, apiutils.IsEqualStruct(agentSingleContainerVolumeMounts, expectedVolumeMounts), "Volume mounts \ndiff = %s", cmp.Diff(agentSingleContainerVolumeMounts, []*corev1.VolumeMount(nil))) volumes := mgr.VolumeMgr.Volumes assert.True(t, apiutils.IsEqualStruct(volumes, expectedVolumes), "Volumes \ndiff = %s", cmp.Diff(volumes, []*corev1.Volume{})) - agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommonv1.AllContainers] + agentEnvVars := mgr.EnvVarMgr.EnvVarsByC[apicommon.AllContainers] assert.True(t, apiutils.IsEqualStruct(agentEnvVars, expectedEnvVars), "Agent envvars \ndiff = %s", cmp.Diff(agentEnvVars, expectedEnvVars)) } diff --git a/internal/controller/datadogagent/override/podtemplatespec.go b/internal/controller/datadogagent/override/podtemplatespec.go index c1b6807d0..942f975c7 100644 --- a/internal/controller/datadogagent/override/podtemplatespec.go +++ b/internal/controller/datadogagent/override/podtemplatespec.go @@ -14,7 +14,6 @@ import ( v1 "k8s.io/api/core/v1" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/object" @@ -203,7 +202,7 @@ func overrideCustomConfigVolumes(logger logr.Logger, manager feature.PodTemplate } } -func overrideImage(currentImg string, overrideImg *common.AgentImageConfig) string { +func overrideImage(currentImg string, overrideImg *v2alpha1.AgentImageConfig) string { splitImg := strings.Split(currentImg, "/") registry := strings.Join(splitImg[:len(splitImg)-1], "/") @@ -220,7 +219,7 @@ func overrideImage(currentImg string, overrideImg *common.AgentImageConfig) stri overrideImgCopy.Tag = strings.TrimSuffix(splitName[1], defaulting.JMXTagSuffix) } - return apicommon.GetImage(&overrideImgCopy, ®istry) + return v2alpha1.GetImage(&overrideImgCopy, ®istry) } func mergeAffinities(affinity1 *v1.Affinity, affinity2 *v1.Affinity) *v1.Affinity { diff --git a/internal/controller/datadogagent/override/podtemplatespec_test.go b/internal/controller/datadogagent/override/podtemplatespec_test.go index 74f4e609b..d1bef15d9 100644 --- a/internal/controller/datadogagent/override/podtemplatespec_test.go +++ b/internal/controller/datadogagent/override/podtemplatespec_test.go @@ -14,7 +14,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/log/zap" "github.com/DataDog/datadog-operator/api/datadoghq/common" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" "github.com/DataDog/datadog-operator/internal/controller/datadogagent/feature/fake" @@ -55,7 +54,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "custom-agent", Tag: "latest", JMXEnabled: true, @@ -75,7 +74,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "custom-agent", Tag: "latest", }, @@ -94,7 +93,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Tag: "latest", }, }, @@ -112,7 +111,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "agent:9.99.9", Tag: "latest", JMXEnabled: true, @@ -132,7 +131,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "custom-agent", JMXEnabled: true, }, @@ -151,7 +150,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Tag: "latest-jmx", JMXEnabled: true, }, @@ -170,7 +169,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0-jmx"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ JMXEnabled: false, }, }, @@ -188,7 +187,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "someregistry.com/datadog/agent:9.99.9", Tag: "latest", JMXEnabled: true, @@ -208,7 +207,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "agent", Tag: "latest", JMXEnabled: true, @@ -228,7 +227,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "agent:latest", }, }, @@ -247,7 +246,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "repo/agent:latest", }, }, @@ -265,7 +264,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "someregistry.com/agent:latest", }, }, @@ -283,7 +282,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "agent", Tag: "latest", }, @@ -302,7 +301,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/a/b/c/agent:7.38.0"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "cluster-agent", JMXEnabled: true, }, @@ -321,7 +320,7 @@ func TestPodTemplateSpec(t *testing.T) { return fakePodTemplateManagersWithImageOverride(containerImageOptions{name: "someregistry.com/datadog/agent:9.99"}, t) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "otherregistry.com/agent", }, }, @@ -341,7 +340,7 @@ func TestPodTemplateSpec(t *testing.T) { ) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ PullPolicy: &never, }, }, @@ -365,7 +364,7 @@ func TestPodTemplateSpec(t *testing.T) { ) }, override: v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ PullPolicy: &ifNotPresent, PullSecrets: &pullSecret, }, @@ -440,7 +439,7 @@ func TestPodTemplateSpec(t *testing.T) { override: v2alpha1.DatadogAgentComponentOverride{ CustomConfigurations: map[v2alpha1.AgentConfigFileName]v2alpha1.CustomConfig{ v2alpha1.AgentGeneralConfigFile: { - ConfigMap: &commonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom-config", }, }, @@ -464,7 +463,7 @@ func TestPodTemplateSpec(t *testing.T) { }, override: v2alpha1.DatadogAgentComponentOverride{ ExtraConfd: &v2alpha1.MultiCustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "extra-confd", }, }, @@ -510,7 +509,7 @@ func TestPodTemplateSpec(t *testing.T) { }, override: v2alpha1.DatadogAgentComponentOverride{ ExtraChecksd: &v2alpha1.MultiCustomConfig{ - ConfigMap: &commonv1.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "extra-checksd", }, }, @@ -556,17 +555,17 @@ func TestPodTemplateSpec(t *testing.T) { manager := fake.NewPodTemplateManagers(t, v1.PodTemplateSpec{ Spec: v1.PodSpec{ Containers: []v1.Container{ - {Name: string(commonv1.CoreAgentContainerName)}, - {Name: string(commonv1.ClusterAgentContainerName)}, + {Name: string(common.CoreAgentContainerName)}, + {Name: string(common.ClusterAgentContainerName)}, }, InitContainers: []v1.Container{ - {Name: string(commonv1.InitConfigContainerName)}, + {Name: string(common.InitConfigContainerName)}, }, }, }) manager.EnvVarMgr.AddEnvVarToContainer( - commonv1.ClusterAgentContainerName, + common.ClusterAgentContainerName, &v1.EnvVar{ Name: common.DDLogLevel, Value: "info", @@ -576,8 +575,8 @@ func TestPodTemplateSpec(t *testing.T) { return manager }, override: v2alpha1.DatadogAgentComponentOverride{ - Containers: map[commonv1.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ - commonv1.ClusterAgentContainerName: { + Containers: map[common.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ + common.ClusterAgentContainerName: { LogLevel: apiutils.NewStringPointer("trace"), }, }, @@ -585,7 +584,7 @@ func TestPodTemplateSpec(t *testing.T) { validateManager: func(t *testing.T, manager *fake.PodTemplateManagers) { envSet := false - for _, env := range manager.EnvVarMgr.EnvVarsByC[commonv1.ClusterAgentContainerName] { + for _, env := range manager.EnvVarMgr.EnvVarsByC[common.ClusterAgentContainerName] { if env.Name == common.DDLogLevel && env.Value == "trace" { envSet = true break diff --git a/internal/controller/datadogagent_controller_profiles_test.go b/internal/controller/datadogagent_controller_profiles_test.go index 223f744df..ddc1aa4de 100644 --- a/internal/controller/datadogagent_controller_profiles_test.go +++ b/internal/controller/datadogagent_controller_profiles_test.go @@ -14,7 +14,6 @@ import ( "time" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/api/utils" @@ -46,7 +45,7 @@ import ( type daemonSetExpectations struct { affinity *v1.Affinity - containerResources map[common.AgentContainerName]v1.ResourceRequirements + containerResources map[apicommon.AgentContainerName]v1.ResourceRequirements envVars []v1.EnvVar } @@ -78,10 +77,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, } @@ -121,8 +120,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -152,10 +151,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profileDaemonSetName: { @@ -182,8 +181,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), }, @@ -191,8 +190,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("1"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, } @@ -234,8 +233,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -279,10 +278,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profileDaemonSetName: { @@ -309,8 +308,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), }, @@ -318,8 +317,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("1"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, envVars: []v1.EnvVar{ { @@ -380,8 +379,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -411,10 +410,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profileDaemonSetName: { @@ -441,8 +440,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), }, @@ -450,8 +449,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("1"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, } @@ -500,8 +499,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -535,8 +534,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("4"), @@ -575,10 +574,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profile1DaemonSetName: { @@ -605,8 +604,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), }, @@ -614,8 +613,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("1"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profile2DaemonSetName: { @@ -642,8 +641,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("4"), }, @@ -651,8 +650,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("3"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, } @@ -703,8 +702,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -738,8 +737,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("4"), @@ -770,10 +769,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profile1DaemonSetName: { @@ -800,8 +799,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), }, @@ -809,8 +808,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("1"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, // Don't expect a DaemonSet for the conflicting profile @@ -858,8 +857,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -879,8 +878,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { agent := testutils.NewDatadogAgentWithoutFeatures(namespace, randomKubernetesObjectName()) agent.Spec.Override = map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("4"), // defined also in profile @@ -907,8 +906,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("4"), v1.ResourceMemory: resource.MustParse("256Mi"), @@ -918,8 +917,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceMemory: resource.MustParse("128Mi"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profileDaemonSetName: { @@ -946,8 +945,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), v1.ResourceMemory: resource.MustParse("256Mi"), @@ -957,8 +956,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceMemory: resource.MustParse("128Mi"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, } @@ -1009,8 +1008,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), @@ -1040,10 +1039,10 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { expectedDaemonSets := map[types.NamespacedName]daemonSetExpectations{ defaultDaemonSetNamespacedName(namespace, &agent): { affinity: affinityForDefaultProfile(), - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: {}, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, profileDaemonSetName: { @@ -1075,8 +1074,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { }, PodAntiAffinity: podAntiAffinityForAgents(), }, - containerResources: map[common.AgentContainerName]v1.ResourceRequirements{ - common.CoreAgentContainerName: { + containerResources: map[apicommon.AgentContainerName]v1.ResourceRequirements{ + apicommon.CoreAgentContainerName: { Limits: map[v1.ResourceName]resource.Quantity{ v1.ResourceCPU: resource.MustParse("2"), }, @@ -1084,8 +1083,8 @@ var _ = Describe("V2 Controller - DatadogAgentProfile", func() { v1.ResourceCPU: resource.MustParse("1"), }, }, - common.TraceAgentContainerName: {}, - common.ProcessAgentContainerName: {}, + apicommon.TraceAgentContainerName: {}, + apicommon.ProcessAgentContainerName: {}, }, }, } diff --git a/internal/controller/testutils/agent.go b/internal/controller/testutils/agent.go index ffc57a4d3..d24394d82 100644 --- a/internal/controller/testutils/agent.go +++ b/internal/controller/testutils/agent.go @@ -23,7 +23,6 @@ import ( controllerruntime "sigs.k8s.io/controller-runtime" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" ) @@ -377,7 +376,7 @@ func NewDatadogAgentWithGlobalConfigSettings(namespace string, name string) v2al NameOverride: apiutils.NewStringPointer("my-local-service"), ForceEnableLocalService: apiutils.NewBoolPointer(true), }, - Kubelet: &common.KubeletConfig{ + Kubelet: &v2alpha1.KubeletConfig{ Host: &v1.EnvVarSource{ FieldRef: &v1.ObjectFieldSelector{ FieldPath: apicommon.FieldPathSpecNodeName, @@ -407,7 +406,7 @@ func NewDatadogAgentWithOverrides(namespace string, name string) v2alpha1.Datado Replicas: nil, // Does not apply for the node agent CreateRbac: apiutils.NewBoolPointer(true), ServiceAccountName: apiutils.NewStringPointer("an-overridden-sa"), - Image: &common.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: "an-overridden-image-name", Tag: "7", JMXEnabled: true, @@ -421,8 +420,8 @@ func NewDatadogAgentWithOverrides(namespace string, name string) v2alpha1.Datado CustomConfigurations: nil, // This option requires creating a configmap. Set to nil here to simplify the test ExtraConfd: nil, // Also requires creating a configmap ExtraChecksd: nil, // Also requires creating a configmap - Containers: map[common.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ + apicommon.CoreAgentContainerName: { Name: apiutils.NewStringPointer("my-container-name"), LogLevel: apiutils.NewStringPointer("debug"), Env: []v1.EnvVar{ @@ -446,9 +445,9 @@ func NewDatadogAgentWithOverrides(namespace string, name string) v2alpha1.Datado ReadinessProbe: &v1.Probe{ ProbeHandler: v1.ProbeHandler{ HTTPGet: &v1.HTTPGetAction{ - Path: apicommon.DefaultLivenessProbeHTTPPath, + Path: v2alpha1.DefaultLivenessProbeHTTPPath, Port: intstr.IntOrString{ - IntVal: apicommon.DefaultAgentHealthPort, + IntVal: v2alpha1.DefaultAgentHealthPort, }, }, }, @@ -461,9 +460,9 @@ func NewDatadogAgentWithOverrides(namespace string, name string) v2alpha1.Datado LivenessProbe: &v1.Probe{ ProbeHandler: v1.ProbeHandler{ HTTPGet: &v1.HTTPGetAction{ - Path: apicommon.DefaultLivenessProbeHTTPPath, + Path: v2alpha1.DefaultLivenessProbeHTTPPath, Port: intstr.IntOrString{ - IntVal: apicommon.DefaultAgentHealthPort, + IntVal: v2alpha1.DefaultAgentHealthPort, }, }, }, @@ -479,7 +478,7 @@ func NewDatadogAgentWithOverrides(namespace string, name string) v2alpha1.Datado SeccompConfig: &v2alpha1.SeccompConfig{ CustomRootPath: apiutils.NewStringPointer("/some/path"), CustomProfile: &v2alpha1.CustomConfig{ - ConfigMap: &common.ConfigMapConfig{ + ConfigMap: &v2alpha1.ConfigMapConfig{ Name: "custom-seccomp-cm", }, }, diff --git a/pkg/agentprofile/agent_profile.go b/pkg/agentprofile/agent_profile.go index e83bb9822..3d5c8e0e1 100644 --- a/pkg/agentprofile/agent_profile.go +++ b/pkg/agentprofile/agent_profile.go @@ -11,7 +11,6 @@ import ( "sort" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/internal/controller/metrics" @@ -298,20 +297,20 @@ func podAntiAffinityOverride() *v1.PodAntiAffinity { } } -func containersOverride(nodeAgentOverride *v1alpha1.Override) map[common.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer { +func containersOverride(nodeAgentOverride *v1alpha1.Override) map[apicommon.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer { if len(nodeAgentOverride.Containers) == 0 { return nil } - containersInNodeAgent := []common.AgentContainerName{ - common.CoreAgentContainerName, - common.TraceAgentContainerName, - common.ProcessAgentContainerName, - common.SecurityAgentContainerName, - common.SystemProbeContainerName, + containersInNodeAgent := []apicommon.AgentContainerName{ + apicommon.CoreAgentContainerName, + apicommon.TraceAgentContainerName, + apicommon.ProcessAgentContainerName, + apicommon.SecurityAgentContainerName, + apicommon.SystemProbeContainerName, } - res := map[common.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{} + res := map[apicommon.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{} for _, containerName := range containersInNodeAgent { if overrideForContainer, overrideIsDefined := nodeAgentOverride.Containers[containerName]; overrideIsDefined { diff --git a/pkg/agentprofile/agent_profile_test.go b/pkg/agentprofile/agent_profile_test.go index 5a54eeebc..ea850a2e7 100644 --- a/pkg/agentprofile/agent_profile_test.go +++ b/pkg/agentprofile/agent_profile_test.go @@ -11,7 +11,6 @@ import ( "time" apicommon "github.com/DataDog/datadog-operator/api/datadoghq/common" - "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -350,16 +349,16 @@ func TestOverrideFromProfile(t *testing.T) { }, }, PriorityClassName: apiutils.NewStringPointer("foo"), - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ IntVal: 10, }, }, }, - Containers: map[common.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v2alpha1.DatadogAgentGenericContainer{ + apicommon.CoreAgentContainerName: { Resources: &v1.ResourceRequirements{ Requests: v1.ResourceList{ v1.ResourceCPU: resource.MustParse("100m"), @@ -718,9 +717,9 @@ func configWithAllOverrides(cpuRequest string) *v1alpha1.Config { Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { PriorityClassName: apiutils.NewStringPointer("foo"), - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ IntVal: 10, }, @@ -729,8 +728,8 @@ func configWithAllOverrides(cpuRequest string) *v1alpha1.Config { Labels: map[string]string{ "foo": "bar", }, - Containers: map[common.AgentContainerName]*v1alpha1.Container{ - common.CoreAgentContainerName: { + Containers: map[apicommon.AgentContainerName]*v1alpha1.Container{ + apicommon.CoreAgentContainerName: { Env: []corev1.EnvVar{ { Name: "foo", @@ -798,9 +797,9 @@ func TestGetMaxUnavailable(t *testing.T) { Spec: v2alpha1.DatadogAgentSpec{ Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ IntVal: 5, }, @@ -819,9 +818,9 @@ func TestGetMaxUnavailable(t *testing.T) { Spec: v2alpha1.DatadogAgentSpec{ Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{}, }, }, @@ -838,9 +837,9 @@ func TestGetMaxUnavailable(t *testing.T) { Spec: v2alpha1.DatadogAgentSpec{ Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ Type: intstr.String, StrVal: "10", @@ -860,9 +859,9 @@ func TestGetMaxUnavailable(t *testing.T) { Spec: v2alpha1.DatadogAgentSpec{ Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ IntVal: 5, }, @@ -877,9 +876,9 @@ func TestGetMaxUnavailable(t *testing.T) { Config: &v1alpha1.Config{ Override: map[v1alpha1.ComponentName]*v1alpha1.Override{ v1alpha1.NodeAgentComponentName: { - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ Type: intstr.String, StrVal: "15%", diff --git a/pkg/controller/utils/datadog/metrics_forwarder.go b/pkg/controller/utils/datadog/metrics_forwarder.go index 617e852a4..de32f40a1 100644 --- a/pkg/controller/utils/datadog/metrics_forwarder.go +++ b/pkg/controller/utils/datadog/metrics_forwarder.go @@ -14,7 +14,6 @@ import ( "sync" "time" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v1alpha1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" "github.com/DataDog/datadog-operator/pkg/config" @@ -98,9 +97,9 @@ type metricsForwarder struct { apiKey string clusterName string labels map[string]string - dsStatus []*commonv1.DaemonSetStatus - dcaStatus *commonv1.DeploymentStatus - ccrStatus *commonv1.DeploymentStatus + dsStatus []*v2alpha1.DaemonSetStatus + dcaStatus *v2alpha1.DeploymentStatus + ccrStatus *v2alpha1.DeploymentStatus EnabledFeatures map[string][]string @@ -438,7 +437,7 @@ func (mf *metricsForwarder) delegatedValidateCreds(apiKey string) (*api.Client, return datadogClient, nil } -func (mf *metricsForwarder) sendStatusMetrics(dsStatus []*commonv1.DaemonSetStatus, dcaStatus, ccrStatus *commonv1.DeploymentStatus) error { +func (mf *metricsForwarder) sendStatusMetrics(dsStatus []*v2alpha1.DaemonSetStatus, dcaStatus, ccrStatus *v2alpha1.DeploymentStatus) error { var metricValue float64 // Agent deployment metrics diff --git a/pkg/controller/utils/datadog/metrics_forwarder_test.go b/pkg/controller/utils/datadog/metrics_forwarder_test.go index 72f366fa3..58c7939d8 100644 --- a/pkg/controller/utils/datadog/metrics_forwarder_test.go +++ b/pkg/controller/utils/datadog/metrics_forwarder_test.go @@ -14,7 +14,6 @@ import ( "sync" "testing" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" datadoghqv2alpha1 "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" test "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1/test" apiutils "github.com/DataDog/datadog-operator/api/utils" @@ -194,7 +193,7 @@ func TestReconcileDatadogAgent_getCredentials(t *testing.T) { args: args{ dda: test.NewDatadogAgent("foo", "bar", &datadoghqv2alpha1.GlobalConfig{ Credentials: &datadoghqv2alpha1.DatadogCredentials{ - APISecret: &commonv1.SecretConfig{ + APISecret: &datadoghqv2alpha1.SecretConfig{ SecretName: "datadog-creds-api", KeyName: "datadog_api_key", }, diff --git a/pkg/defaulting/images.go b/pkg/defaulting/images.go index cc2b1a0ef..e3d470498 100644 --- a/pkg/defaulting/images.go +++ b/pkg/defaulting/images.go @@ -28,7 +28,7 @@ const ( // PublicECSContainerRegistry corresponds to the datadoghq PublicECSContainerRegistry registry PublicECSContainerRegistry ContainerRegistry = "public.ecr.aws/datadog" // DefaultImageRegistry corresponds to the datadoghq containers registry - DefaultImageRegistry = GCRContainerRegistry + DefaultImageRegistry = GCRContainerRegistry // TODO: this is also defined elsewhere and not used; consolidate // JMXTagSuffix prefix tag for agent JMX images JMXTagSuffix = "-jmx" diff --git a/pkg/plugin/common/statuswrapper.go b/pkg/plugin/common/statuswrapper.go index a2c7672f7..179c77231 100644 --- a/pkg/plugin/common/statuswrapper.go +++ b/pkg/plugin/common/statuswrapper.go @@ -6,16 +6,15 @@ package common import ( - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) type StatusWrapper interface { GetObjectMeta() metav1.Object - GetAgentStatus() *commonv1.DaemonSetStatus - GetClusterAgentStatus() *commonv1.DeploymentStatus - GetClusterChecksRunnerStatus() *commonv1.DeploymentStatus + GetAgentStatus() *v2alpha1.DaemonSetStatus + GetClusterAgentStatus() *v2alpha1.DeploymentStatus + GetClusterChecksRunnerStatus() *v2alpha1.DeploymentStatus GetStatusCondition() []metav1.Condition } @@ -32,19 +31,19 @@ func (sw v2StatusWrapper) GetStatusCondition() []metav1.Condition { return sw.dda.Status.Conditions } -func (sw v2StatusWrapper) GetAgentStatus() *commonv1.DaemonSetStatus { +func (sw v2StatusWrapper) GetAgentStatus() *v2alpha1.DaemonSetStatus { if sw.dda != nil { return sw.dda.Status.Agent } return nil } -func (sw v2StatusWrapper) GetClusterAgentStatus() *commonv1.DeploymentStatus { +func (sw v2StatusWrapper) GetClusterAgentStatus() *v2alpha1.DeploymentStatus { if sw.dda != nil { return sw.dda.Status.ClusterAgent } return nil } -func (sw v2StatusWrapper) GetClusterChecksRunnerStatus() *commonv1.DeploymentStatus { +func (sw v2StatusWrapper) GetClusterChecksRunnerStatus() *v2alpha1.DeploymentStatus { if sw.dda != nil { return sw.dda.Status.ClusterChecksRunner } diff --git a/pkg/plugin/common/v2support.go b/pkg/plugin/common/v2support.go index 872425927..3a18fd9b5 100644 --- a/pkg/plugin/common/v2support.go +++ b/pkg/plugin/common/v2support.go @@ -9,7 +9,6 @@ import ( "fmt" "strings" - commonv1 "github.com/DataDog/datadog-operator/api/datadoghq/common/v1" "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1" apiutils "github.com/DataDog/datadog-operator/api/utils" ) @@ -17,7 +16,7 @@ import ( func OverrideComponentImage(spec *v2alpha1.DatadogAgentSpec, cmpName v2alpha1.ComponentName, imageName, imageTag string) error { if _, found := spec.Override[cmpName]; !found { spec.Override[cmpName] = &v2alpha1.DatadogAgentComponentOverride{ - Image: &commonv1.AgentImageConfig{ + Image: &v2alpha1.AgentImageConfig{ Name: imageName, Tag: imageTag, }, @@ -28,7 +27,7 @@ func OverrideComponentImage(spec *v2alpha1.DatadogAgentSpec, cmpName v2alpha1.Co if !apiutils.BoolValue(cmpOverride.Disabled) { if cmpOverride.Image == nil { - cmpOverride.Image = &commonv1.AgentImageConfig{} + cmpOverride.Image = &v2alpha1.AgentImageConfig{} } if cmpOverride.Image.Name == imageName && cmpOverride.Image.Tag == imageTag { return fmt.Errorf("the current nodeAgent image is already %s:%s", imageName, imageTag) From 3a6cd1580717885d99350d3757df8c2b4922ed09 Mon Sep 17 00:00:00 2001 From: Celene Date: Thu, 19 Sep 2024 14:52:42 -0400 Subject: [PATCH 2/2] small fix --- pkg/agentprofile/agent_profile_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/agentprofile/agent_profile_test.go b/pkg/agentprofile/agent_profile_test.go index f1e1e843a..f83660e31 100644 --- a/pkg/agentprofile/agent_profile_test.go +++ b/pkg/agentprofile/agent_profile_test.go @@ -930,9 +930,9 @@ func TestGetMaxUnavailable(t *testing.T) { Spec: v2alpha1.DatadogAgentSpec{ Override: map[v2alpha1.ComponentName]*v2alpha1.DatadogAgentComponentOverride{ v2alpha1.NodeAgentComponentName: { - UpdateStrategy: &common.UpdateStrategy{ + UpdateStrategy: &apicommon.UpdateStrategy{ Type: "RollingUpdate", - RollingUpdate: &common.RollingUpdate{ + RollingUpdate: &apicommon.RollingUpdate{ MaxUnavailable: &intstr.IntOrString{ Type: intstr.String, StrVal: "20%",