diff --git a/stable/datadog/Chart.yaml b/stable/datadog/Chart.yaml index 6aef8a1afc..6bdde6922c 100755 --- a/stable/datadog/Chart.yaml +++ b/stable/datadog/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: datadog -version: 1.33.0 +version: 1.34.0 appVersion: 6.13.0 description: DataDog Agent keywords: diff --git a/stable/datadog/README.md b/stable/datadog/README.md index 71c7ac1d36..f90775dd07 100644 --- a/stable/datadog/README.md +++ b/stable/datadog/README.md @@ -286,6 +286,7 @@ helm install --name \ | `daemonset.containers.traceAgent.resources.limits.memory` | Memory resource limits for the trace-agent container | `200Mi` | | `daemonset.containers.traceAgent.resources.requests.memory` | Memory resource requests for the trace-agent container | `200Mi` | | `daemonset.priorityClassName` | Which Priority Class to associate with the daemonset | `nil` | +| `daemonset.updateStrategy` | Which update strategy to deploy the daemonset | RollingUpdate with 10% maxUnavailable | | `datadog.leaderElection` | Enable the leader Election feature | `false` | | `datadog.leaderLeaseDuration` | The duration for which a leader stays elected. | 60 sec, 15 if Cluster Checks enabled | | `datadog.collectEvents` | Enable Kubernetes event collection. Requires leader election. | `false` | @@ -317,6 +318,7 @@ helm install --name \ | `clusterAgent.tolerations` | List of node taints to tolerate | `[]` | | `clusterAgent.livenessProbe` | Overrides the default liveness probe | http port 443 if external metrics enabled | | `clusterAgent.readinessProbe` | Overrides the default readiness probe | http port 443 if external metrics enabled | +| `clusterAgent.strategy` | Which update strategy to deploy the cluster-agent | RollingUpdate with 0 maxUnavailable, 1 maxSurge | | `clusterchecksDeployment.enabled` | Enable Datadog agent deployment dedicated for running Cluster Checks. It allows having different resources (Request/Limit) for Cluster Checks agent pods. | `false` | | `clusterchecksDeployment.env` | Additional Datadog environment variables for Cluster Checks Deployment | `nil` | | `clusterchecksDeployment.resources.requests.cpu` | CPU resource requests | `200m` | @@ -329,3 +331,4 @@ helm install --name \ | `clusterchecksDeployment.livenessProbe` | Overrides the default liveness probe | http port 5555 | | `clusterchecksDeployment.rbac.dedicated` | If true, use dedicated RBAC resources for clusterchecks agent's pods | `false` | | `clusterchecksDeployment.rbac.serviceAccount` | existing ServiceAccount to use (ignored if rbac.create=true) for clusterchecks | `default` | +| `clusterchecksDeployment.strategy` | Which update strategy to deploy the Cluster Checks Deployment | RollingUpdate with 0 maxUnavailable, 1 maxSurge | diff --git a/stable/datadog/templates/agent-clusterchecks-deployment.yaml b/stable/datadog/templates/agent-clusterchecks-deployment.yaml index 35c536c3a3..5491beee9e 100644 --- a/stable/datadog/templates/agent-clusterchecks-deployment.yaml +++ b/stable/datadog/templates/agent-clusterchecks-deployment.yaml @@ -10,6 +10,15 @@ metadata: heritage: {{ .Release.Service | quote }} spec: replicas: {{ .Values.clusterchecksDeployment.replicas }} + strategy: +{{- if .Values.clusterchecksDeployment.strategy }} +{{ toYaml .Values.clusterchecksDeployment.strategy | indent 4 }} +{{- else }} + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 +{{- end }} template: metadata: labels: diff --git a/stable/datadog/templates/cluster-agent-deployment.yaml b/stable/datadog/templates/cluster-agent-deployment.yaml index 50a6583062..d8b84153e6 100644 --- a/stable/datadog/templates/cluster-agent-deployment.yaml +++ b/stable/datadog/templates/cluster-agent-deployment.yaml @@ -10,6 +10,15 @@ metadata: heritage: {{ .Release.Service | quote }} spec: replicas: {{ .Values.clusterAgent.replicas }} + strategy: +{{- if .Values.clusterAgent.strategy }} +{{ toYaml .Values.clusterAgent.strategy | indent 4 }} +{{- else }} + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 0 +{{- end }} selector: matchLabels: app: {{ template "datadog.fullname" . }}-cluster-agent diff --git a/stable/datadog/templates/daemonset.yaml b/stable/datadog/templates/daemonset.yaml index 664f545f65..86b4707da6 100644 --- a/stable/datadog/templates/daemonset.yaml +++ b/stable/datadog/templates/daemonset.yaml @@ -131,6 +131,12 @@ spec: {{ toYaml .Values.daemonset.nodeSelector | indent 8 }} {{- end }} updateStrategy: - type: {{ default "RollingUpdate" .Values.daemonset.updateStrategy | quote }} +{{- if .Values.daemonset.updateStrategy }} +{{ toYaml .Values.daemonset.updateStrategy | indent 4 }} +{{- else }} + type: RollingUpdate + rollingUpdate: + maxUnavailable: "10%" +{{- end }} {{ end }} {{ end }} diff --git a/stable/datadog/values.yaml b/stable/datadog/values.yaml index 64f749aaaf..d65463671a 100644 --- a/stable/datadog/values.yaml +++ b/stable/datadog/values.yaml @@ -208,7 +208,7 @@ datadog: # # volumes: # - hostPath: - # path: + # path: # name: ## @param volumeMounts - list of objects - optional @@ -360,6 +360,16 @@ clusterAgent: # exec: # command: ["/bin/true"] + ## @param strategy - string - optional + ## Allow the Cluster Agent deployment to perform a rolling update on helm update + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy + # + # strategy: + # type: RollingUpdate + # rollingUpdate: + # maxSurge: 1 + # maxUnavailable: 0 + ## @param podAnnotations - list of key:value strings - optional ## Annotations to add to the cluster-agents's pod(s) # @@ -567,7 +577,10 @@ daemonset: ## Allow the DaemonSet to perform a rolling update on helm update ## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/ # - # updateStrategy: RollingUpdate + # updateStrategy: + # type: RollingUpdate + # rollingUpdate: + # maxUnavailable: "10%" ## @param priorityClassName - string - optional ## Sets PriorityClassName if defined. @@ -672,8 +685,18 @@ clusterchecksDeployment: # # affinity: + ## @param strategy - string - optional + ## Allow the ClusterChecks deployment to perform a rolling update on helm update + ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy + # + # strategy: + # type: RollingUpdate + # rollingUpdate: + # maxSurge: 1 + # maxUnavailable: 0 + ## @param nodeSelector - object - optional - ## Allow the ClusterChecks Deploument to schedule on selected nodes + ## Allow the ClusterChecks Deployment to schedule on selected nodes ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ # # nodeSelector: {}