From fb82af4ef67821c84a25300c9344365ebc859ad4 Mon Sep 17 00:00:00 2001 From: khewonc <39867936+khewonc@users.noreply.github.com> Date: Thu, 28 Mar 2024 16:12:07 -0400 Subject: [PATCH] Add Operator 1.5.0 (#1360) * Operator 1.5.0 * Only run operator tests when modifying operator chart --- .github/workflows/go-test.yaml | 2 +- Makefile | 8 ++ charts/datadog-operator/CHANGELOG.md | 4 + charts/datadog-operator/Chart.lock | 6 +- charts/datadog-operator/Chart.yaml | 6 +- charts/datadog-operator/README.md | 7 +- charts/datadog-operator/README.md.gotmpl | 2 +- .../templates/clusterrole.yaml | 34 ++++++ .../templates/deployment.yaml | 3 + charts/datadog-operator/values.yaml | 5 +- .../baseline/DatadogAgent_CRD_default.yaml | 112 +++++++++++++++++- .../DatadogAgent_CRD_with_certManager.yaml | 112 +++++++++++++++++- .../baseline/Operator_Deployment_default.yaml | 7 +- .../Operator_Deployment_with_certManager.yaml | 7 +- .../operator_deployment_test.go | 2 +- 15 files changed, 296 insertions(+), 21 deletions(-) diff --git a/.github/workflows/go-test.yaml b/.github/workflows/go-test.yaml index 37f4f9816..28dbbd836 100644 --- a/.github/workflows/go-test.yaml +++ b/.github/workflows/go-test.yaml @@ -31,7 +31,7 @@ jobs: - name: run Go tests run: | helm dependency build ./charts/datadog-operator - make unit-test + make unit-test-operator integ-tests: if: ${{github.event.pull_request.head.repo.full_name == github.repository }} diff --git a/Makefile b/Makefile index 4c6a14b4d..ed8bc8441 100644 --- a/Makefile +++ b/Makefile @@ -48,10 +48,18 @@ vet: unit-test: go test -C test ./... -count=1 +.PHONY: unit-test-operator +unit-test-operator: + go test -C test ./datadog-operator -count=1 + .PHONY: update-test-baselines update-test-baselines: go test -C test ./... -count=1 -args -updateBaselines=true +.PHONY: update-test-baselines-operator +update-test-baselines-operator: + go test -C test ./datadog-operator -count=1 -args -updateBaselines=true + .PHONY: integration-test integration-test: go test -C test/integ --tags=integration -count=1 -v diff --git a/charts/datadog-operator/CHANGELOG.md b/charts/datadog-operator/CHANGELOG.md index eb566f658..53cf3c005 100644 --- a/charts/datadog-operator/CHANGELOG.md +++ b/charts/datadog-operator/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 1.6.0 + +* Update Datadog Operator version to 1.5.0. + ## 1.5.2 * Add deprecation warning for `DatadogAgent` `v1alpha1` CRD version. diff --git a/charts/datadog-operator/Chart.lock b/charts/datadog-operator/Chart.lock index 6632b4a31..be00d4f6a 100644 --- a/charts/datadog-operator/Chart.lock +++ b/charts/datadog-operator/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: datadog-crds repository: https://helm.datadoghq.com - version: 1.4.0 -digest: sha256:051b894b6d03a9a78919a1549b891592cb1aa82e59386c237b93241bdba7054c -generated: "2024-02-15T15:04:10.736131-05:00" + version: 1.5.0 +digest: sha256:0d4930313af68e7bb8e9074b782b5e09fd47201343f25f5bf0c01a3e0d920a47 +generated: "2024-03-28T13:57:10.146369-04:00" diff --git a/charts/datadog-operator/Chart.yaml b/charts/datadog-operator/Chart.yaml index b61be3b7f..5b9e088fd 100644 --- a/charts/datadog-operator/Chart.yaml +++ b/charts/datadog-operator/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 name: datadog-operator -version: 1.5.2 -appVersion: 1.4.0 +version: 1.6.0 +appVersion: 1.5.0 description: Datadog Operator keywords: - monitoring @@ -17,7 +17,7 @@ maintainers: email: support@datadoghq.com dependencies: - name: datadog-crds - version: "=1.4.0" + version: "=1.5.0" alias: datadogCRDs repository: https://helm.datadoghq.com condition: installCRDs diff --git a/charts/datadog-operator/README.md b/charts/datadog-operator/README.md index 6343ff3e0..1bca7e62d 100644 --- a/charts/datadog-operator/README.md +++ b/charts/datadog-operator/README.md @@ -1,6 +1,6 @@ # Datadog Operator -![Version: 1.5.2](https://img.shields.io/badge/Version-1.5.2-informational?style=flat-square) ![AppVersion: 1.4.0](https://img.shields.io/badge/AppVersion-1.4.0-informational?style=flat-square) +![Version: 1.6.0](https://img.shields.io/badge/Version-1.6.0-informational?style=flat-square) ![AppVersion: 1.5.0](https://img.shields.io/badge/AppVersion-1.5.0-informational?style=flat-square) ## Values @@ -14,6 +14,7 @@ | collectOperatorMetrics | bool | `true` | Configures an openmetrics check to collect operator metrics | | containerSecurityContext | object | `{}` | A security context defines privileges and access control settings for a container. | | datadogAgent.enabled | bool | `true` | Enables Datadog Agent controller | +| datadogAgentProfile.enabled | bool | `false` | If true, enables DatadogAgentProfile controller (beta). Requires v1.5.0+ | | datadogCRDs.crds.datadogAgents | bool | `true` | Set to true to deploy the DatadogAgents CRD | | datadogCRDs.crds.datadogMetrics | bool | `true` | Set to true to deploy the DatadogMetrics CRD | | datadogCRDs.crds.datadogMonitors | bool | `true` | Set to true to deploy the DatadogMonitors CRD | @@ -30,7 +31,7 @@ | fullnameOverride | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | Define the pullPolicy for Datadog Operator image | | image.repository | string | `"gcr.io/datadoghq/operator"` | Repository to use for Datadog Operator image | -| image.tag | string | `"1.4.0"` | Define the Datadog Operator version to use | +| image.tag | string | `"1.5.0"` | Define the Datadog Operator version to use | | imagePullSecrets | list | `[]` | Datadog Operator repository pullSecret (ex: specify docker registry credentials) | | installCRDs | bool | `true` | Set to true to deploy the Datadog's CRDs | | introspection.enabled | bool | `false` | If true, enables introspection feature (beta). Requires v1.4.0+ | @@ -121,7 +122,7 @@ You can update with the following: ``` helm upgrade \ datadog-operator datadog/datadog-operator \ - --set image.tag=1.4.0 \ + --set image.tag=1.5.0 \ --set datadogCRDs.migration.datadogAgents.version=v2alpha1 \ --set datadogCRDs.migration.datadogAgents.useCertManager=true \ --set datadogCRDs.migration.datadogAgents.conversionWebhook.enabled=true diff --git a/charts/datadog-operator/README.md.gotmpl b/charts/datadog-operator/README.md.gotmpl index 1a869be84..e7c017ca9 100644 --- a/charts/datadog-operator/README.md.gotmpl +++ b/charts/datadog-operator/README.md.gotmpl @@ -68,7 +68,7 @@ You can update with the following: ``` helm upgrade \ datadog-operator datadog/datadog-operator \ - --set image.tag=1.4.0 \ + --set image.tag=1.5.0 \ --set datadogCRDs.migration.datadogAgents.version=v2alpha1 \ --set datadogCRDs.migration.datadogAgents.useCertManager=true \ --set datadogCRDs.migration.datadogAgents.conversionWebhook.enabled=true diff --git a/charts/datadog-operator/templates/clusterrole.yaml b/charts/datadog-operator/templates/clusterrole.yaml index 2699c37c7..15bbfb51b 100644 --- a/charts/datadog-operator/templates/clusterrole.yaml +++ b/charts/datadog-operator/templates/clusterrole.yaml @@ -696,4 +696,38 @@ rules: verbs: - list - watch +{{- if .Values.enableDatadogAgentProfile }} +- apiGroups: + - "" + resources: + - nodes + verbs: + - patch +- apiGroups: + - datadoghq.com + resources: + - datadogagentprofiles + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - datadoghq.com + resources: + - datadogagentprofiles/status + verbs: + - get + - patch + - update +- apiGroups: + - datadoghq.com + resources: + - datadogagentprofiles/finalizers + verbs: + - update +{{- end }} {{- end -}} diff --git a/charts/datadog-operator/templates/deployment.yaml b/charts/datadog-operator/templates/deployment.yaml index 0c2b45f7f..e8908b26f 100644 --- a/charts/datadog-operator/templates/deployment.yaml +++ b/charts/datadog-operator/templates/deployment.yaml @@ -110,6 +110,9 @@ spec: {{- end }} {{- if (semverCompare ">=1.4.0" .Values.image.tag) }} - "-introspectionEnabled={{ .Values.introspection.enabled }}" + {{- end }} + {{- if (semverCompare ">=1.5.0" .Values.image.tag) }} + - "-datadogAgentProfileEnabled={{ .Values.datadogAgentProfile.enabled }}" {{- end }} - "-datadogMonitorEnabled={{ .Values.datadogMonitor.enabled }}" {{- if (semverCompare ">=1.0.0-rc.13" .Values.image.tag) }} diff --git a/charts/datadog-operator/values.yaml b/charts/datadog-operator/values.yaml index af9863a35..415edfacd 100644 --- a/charts/datadog-operator/values.yaml +++ b/charts/datadog-operator/values.yaml @@ -43,7 +43,7 @@ image: # image.repository -- Repository to use for Datadog Operator image repository: gcr.io/datadoghq/operator # image.tag -- Define the Datadog Operator version to use - tag: 1.4.0 + tag: 1.5.0 # image.pullPolicy -- Define the pullPolicy for Datadog Operator image pullPolicy: IfNotPresent # imagePullSecrets -- Datadog Operator repository pullSecret (ex: specify docker registry credentials) @@ -61,6 +61,9 @@ maximumGoroutines: introspection: # introspection.enabled -- If true, enables introspection feature (beta). Requires v1.4.0+ enabled: false +datadogAgentProfile: +# datadogAgentProfile.enabled -- If true, enables DatadogAgentProfile controller (beta). Requires v1.5.0+ + enabled: false # supportExtendedDaemonset -- If true, supports using ExtendedDaemonSet CRD supportExtendedDaemonset: "false" # operatorMetricsEnabled -- Enable forwarding of Datadog Operator metrics and events to Datadog. diff --git a/test/datadog-operator/baseline/DatadogAgent_CRD_default.yaml b/test/datadog-operator/baseline/DatadogAgent_CRD_default.yaml index 5ffe8dc97..ea788ad08 100644 --- a/test/datadog-operator/baseline/DatadogAgent_CRD_default.yaml +++ b/test/datadog-operator/baseline/DatadogAgent_CRD_default.yaml @@ -8,7 +8,7 @@ metadata: creationTimestamp: null name: datadogagents.datadoghq.com labels: - helm.sh/chart: 'datadogCRDs-1.4.0' + helm.sh/chart: 'datadogCRDs-1.5.0' app.kubernetes.io/managed-by: 'Helm' app.kubernetes.io/name: 'datadogCRDs' app.kubernetes.io/instance: 'datadog-operator' @@ -5898,6 +5898,25 @@ spec: format: int32 type: integer type: object + instrumentation: + properties: + disabledNamespaces: + items: + type: string + type: array + x-kubernetes-list-type: set + enabled: + type: boolean + enabledNamespaces: + items: + type: string + type: array + x-kubernetes-list-type: set + libVersions: + additionalProperties: + type: string + type: object + type: object unixDomainSocketConfig: properties: enabled: @@ -6107,6 +6126,17 @@ spec: wpaController: type: boolean type: object + helmCheck: + properties: + collectEvents: + type: boolean + enabled: + type: boolean + valuesAsTags: + additionalProperties: + type: string + type: object + type: object kubeStateMetricsCore: properties: conf: @@ -6393,6 +6423,86 @@ spec: url: type: string type: object + fips: + properties: + customFIPSConfig: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + enabled: + type: boolean + image: + properties: + jmxEnabled: + type: boolean + name: + type: string + pullPolicy: + type: string + pullSecrets: + items: + properties: + name: + type: string + type: object + type: array + tag: + type: string + type: object + localAddress: + type: string + port: + format: int32 + type: integer + portRange: + format: int32 + type: integer + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + useHTTPS: + type: boolean + type: object kubelet: properties: agentCAPath: diff --git a/test/datadog-operator/baseline/DatadogAgent_CRD_with_certManager.yaml b/test/datadog-operator/baseline/DatadogAgent_CRD_with_certManager.yaml index f068d8f7c..d3baadaec 100644 --- a/test/datadog-operator/baseline/DatadogAgent_CRD_with_certManager.yaml +++ b/test/datadog-operator/baseline/DatadogAgent_CRD_with_certManager.yaml @@ -9,7 +9,7 @@ metadata: creationTimestamp: null name: datadogagents.datadoghq.com labels: - helm.sh/chart: 'datadogCRDs-1.4.0' + helm.sh/chart: 'datadogCRDs-1.5.0' app.kubernetes.io/managed-by: 'Helm' app.kubernetes.io/name: 'datadogCRDs' app.kubernetes.io/instance: 'datadog-operator' @@ -5909,6 +5909,25 @@ spec: format: int32 type: integer type: object + instrumentation: + properties: + disabledNamespaces: + items: + type: string + type: array + x-kubernetes-list-type: set + enabled: + type: boolean + enabledNamespaces: + items: + type: string + type: array + x-kubernetes-list-type: set + libVersions: + additionalProperties: + type: string + type: object + type: object unixDomainSocketConfig: properties: enabled: @@ -6118,6 +6137,17 @@ spec: wpaController: type: boolean type: object + helmCheck: + properties: + collectEvents: + type: boolean + enabled: + type: boolean + valuesAsTags: + additionalProperties: + type: string + type: object + type: object kubeStateMetricsCore: properties: conf: @@ -6404,6 +6434,86 @@ spec: url: type: string type: object + fips: + properties: + customFIPSConfig: + properties: + configData: + type: string + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + format: int32 + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + type: string + type: object + type: object + enabled: + type: boolean + image: + properties: + jmxEnabled: + type: boolean + name: + type: string + pullPolicy: + type: string + pullSecrets: + items: + properties: + name: + type: string + type: object + type: array + tag: + type: string + type: object + localAddress: + type: string + port: + format: int32 + type: integer + portRange: + format: int32 + type: integer + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + useHTTPS: + type: boolean + type: object kubelet: properties: agentCAPath: diff --git a/test/datadog-operator/baseline/Operator_Deployment_default.yaml b/test/datadog-operator/baseline/Operator_Deployment_default.yaml index ce97f5c1b..cd87f7825 100644 --- a/test/datadog-operator/baseline/Operator_Deployment_default.yaml +++ b/test/datadog-operator/baseline/Operator_Deployment_default.yaml @@ -7,9 +7,9 @@ metadata: namespace: datadog-agent labels: app.kubernetes.io/name: datadog-operator - helm.sh/chart: datadog-operator-1.5.2 + helm.sh/chart: datadog-operator-1.6.0 app.kubernetes.io/instance: datadog-operator - app.kubernetes.io/version: "1.4.0" + app.kubernetes.io/version: "1.5.0" app.kubernetes.io/managed-by: Helm spec: replicas: 1 @@ -35,7 +35,7 @@ spec: serviceAccountName: datadog-operator containers: - name: datadog-operator - image: "gcr.io/datadoghq/operator:1.4.0" + image: "gcr.io/datadoghq/operator:1.5.0" imagePullPolicy: IfNotPresent env: - name: WATCH_NAMESPACE @@ -54,6 +54,7 @@ spec: - "-operatorMetricsEnabled=true" - "-webhookEnabled=false" - "-introspectionEnabled=false" + - "-datadogAgentProfileEnabled=false" - "-datadogMonitorEnabled=false" - "-datadogAgentEnabled=true" - "-datadogSLOEnabled=false" diff --git a/test/datadog-operator/baseline/Operator_Deployment_with_certManager.yaml b/test/datadog-operator/baseline/Operator_Deployment_with_certManager.yaml index 4c159d5ef..00c01a31b 100644 --- a/test/datadog-operator/baseline/Operator_Deployment_with_certManager.yaml +++ b/test/datadog-operator/baseline/Operator_Deployment_with_certManager.yaml @@ -7,9 +7,9 @@ metadata: namespace: datadog-agent labels: app.kubernetes.io/name: datadog-operator - helm.sh/chart: datadog-operator-1.5.2 + helm.sh/chart: datadog-operator-1.6.0 app.kubernetes.io/instance: datadog-operator - app.kubernetes.io/version: "1.4.0" + app.kubernetes.io/version: "1.5.0" app.kubernetes.io/managed-by: Helm spec: replicas: 1 @@ -35,7 +35,7 @@ spec: serviceAccountName: datadog-operator containers: - name: datadog-operator - image: "gcr.io/datadoghq/operator:1.4.0" + image: "gcr.io/datadoghq/operator:1.5.0" imagePullPolicy: IfNotPresent env: - name: WATCH_NAMESPACE @@ -54,6 +54,7 @@ spec: - "-operatorMetricsEnabled=true" - "-webhookEnabled=true" - "-introspectionEnabled=false" + - "-datadogAgentProfileEnabled=false" - "-datadogMonitorEnabled=false" - "-datadogAgentEnabled=true" - "-datadogSLOEnabled=false" diff --git a/test/datadog-operator/operator_deployment_test.go b/test/datadog-operator/operator_deployment_test.go index 9de730c85..d63271e42 100644 --- a/test/datadog-operator/operator_deployment_test.go +++ b/test/datadog-operator/operator_deployment_test.go @@ -130,7 +130,7 @@ func verifyDeployment(t *testing.T, manifest string) { assert.Equal(t, 1, len(deployment.Spec.Template.Spec.Containers)) operatorContainer := deployment.Spec.Template.Spec.Containers[0] assert.Equal(t, v1.PullPolicy("IfNotPresent"), operatorContainer.ImagePullPolicy) - assert.Equal(t, "gcr.io/datadoghq/operator:1.4.0", operatorContainer.Image) + assert.Equal(t, "gcr.io/datadoghq/operator:1.5.0", operatorContainer.Image) assert.Contains(t, operatorContainer.Args, "-webhookEnabled=false") }