diff --git a/bitnami/argo-cd/CHANGELOG.md b/bitnami/argo-cd/CHANGELOG.md index 9a8c8cc38a8bb9..c96f6a96686f0a 100644 --- a/bitnami/argo-cd/CHANGELOG.md +++ b/bitnami/argo-cd/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog -## 6.3.4 (2024-05-28) +## 6.4.0 (2024-05-29) -* [bitnami/argo-cd] Define port for notifications probes ([#26485](https://github.com/bitnami/charts/pull/26485)) +* [bitnami/argo-cd] Enable PodDisruptionBudgets ([#26419](https://github.com/bitnami/charts/pull/26419)) + +## 6.3.4 (2024-05-28) + +* [bitnami/argo-cd] Define port for notifications probes (#26485) ([4500caf](https://github.com/bitnami/charts/commit/4500cafc0aab84295f85bd839978929e5dfc8773)), closes [#26485](https://github.com/bitnami/charts/issues/26485) ## 6.3.3 (2024-05-24) diff --git a/bitnami/argo-cd/Chart.lock b/bitnami/argo-cd/Chart.lock index 9ff890e6a82935..1d21b8083f1ed9 100644 --- a/bitnami/argo-cd/Chart.lock +++ b/bitnami/argo-cd/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: oci://registry-1.docker.io/bitnamicharts version: 2.19.3 digest: sha256:76d6e4b79e82a6a2fe28129a71f45a81f2162f3457202673a91e934489a40aad -generated: "2024-05-24T14:31:26.856603768Z" +generated: "2024-05-24T17:20:55.088121+02:00" diff --git a/bitnami/argo-cd/Chart.yaml b/bitnami/argo-cd/Chart.yaml index a0b50c7e8a2612..96a3bd573c5d73 100644 --- a/bitnami/argo-cd/Chart.yaml +++ b/bitnami/argo-cd/Chart.yaml @@ -39,4 +39,4 @@ maintainers: name: argo-cd sources: - https://github.com/bitnami/charts/tree/main/bitnami/argo-cd -version: 6.3.4 +version: 6.4.0 diff --git a/bitnami/argo-cd/README.md b/bitnami/argo-cd/README.md index c8d7d3c8f65f1f..67db5e48dc81ea 100644 --- a/bitnami/argo-cd/README.md +++ b/bitnami/argo-cd/README.md @@ -396,6 +396,9 @@ As an alternative, use one of the preset configurations for pod affinity, pod an | `controller.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Argo CD container(s) | `[]` | | `controller.sidecars` | Add additional sidecar containers to the Argo CD pod(s) | `[]` | | `controller.initContainers` | Add additional init containers to the Argo CD pod(s) | `[]` | +| `controller.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` | +| `controller.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` | +| `controller.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `controller.pdb.minAvailable` and `controller.pdb.maxUnavailable` are empty. | `""` | ### Argo CD ApplicationSet controller parameters @@ -516,6 +519,9 @@ As an alternative, use one of the preset configurations for pod affinity, pod an | `applicationSet.webhook.ingress.extraPaths` | Extra paths for the Argo CD applicationSet ingress | `[]` | | `applicationSet.webhook.ingress.extraTls` | Extra TLS configuration for the Argo CD applicationSet ingress | `[]` | | `applicationSet.webhook.ingress.tls` | Ingress TLS configuration | `[]` | +| `applicationSet.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` | +| `applicationSet.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` | +| `applicationSet.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `controller.pdb.minAvailable` and `controller.pdb.maxUnavailable` are empty. | `""` | ### Argo CD notifications controller parameters @@ -708,6 +714,9 @@ As an alternative, use one of the preset configurations for pod affinity, pod an | `notifications.bots.slack.extraEnvVars` | Array with extra environment variables to add to Argo CD Slack bot nodes | `[]` | | `notifications.bots.slack.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for Argo CD Slack bot nodes | `""` | | `notifications.bots.slack.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for Argo CD Slack bot nodes | `""` | +| `notifications.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` | +| `notifications.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` | +| `notifications.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `notifications.pdb.minAvailable` and `notifications.pdb.maxUnavailable` are empty. | `""` | ### Argo CD server Parameters @@ -868,6 +877,9 @@ As an alternative, use one of the preset configurations for pod affinity, pod an | `server.serviceAccount.name` | The name of the ServiceAccount to use. | `""` | | `server.serviceAccount.automountServiceAccountToken` | Automount service account token for the server service account | `false` | | `server.serviceAccount.annotations` | Annotations for service account. Evaluated as a template. Only used if `create` is `true`. | `{}` | +| `server.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` | +| `server.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` | +| `server.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `server.pdb.minAvailable` and `server.pdb.maxUnavailable` are empty. | `""` | ### Argo CD repo server Parameters @@ -993,6 +1005,9 @@ As an alternative, use one of the preset configurations for pod affinity, pod an | `repoServer.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Argo CD repo server container(s) | `[]` | | `repoServer.sidecars` | Add additional sidecar containers to the Argo CD repo server pod(s) | `[]` | | `repoServer.initContainers` | Add additional init containers to the Argo CD repo server pod(s) | `[]` | +| `repoServer.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` | +| `repoServer.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` | +| `repoServer.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `repoServer.pdb.minAvailable` and `repoServer.pdb.maxUnavailable` are empty. | `""` | ### Dex Parameters @@ -1121,6 +1136,9 @@ As an alternative, use one of the preset configurations for pod affinity, pod an | `dex.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the Dex container(s) | `[]` | | `dex.sidecars` | Add additional sidecar containers to the Dex pod(s) | `[]` | | `dex.initContainers` | Add additional init containers to the Dex pod(s) | `[]` | +| `dex.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` | +| `dex.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` | +| `dex.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `dex.pdb.minAvailable` and `dex.pdb.maxUnavailable` are empty. | `""` | ### Shared config for Argo CD components diff --git a/bitnami/argo-cd/templates/application-controller/pdb.yaml b/bitnami/argo-cd/templates/application-controller/pdb.yaml new file mode 100644 index 00000000000000..8a2e5409c78df7 --- /dev/null +++ b/bitnami/argo-cd/templates/application-controller/pdb.yaml @@ -0,0 +1,28 @@ +{{- /* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{- if .Values.controller.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "argocd.application-controller" . }} + namespace: {{ include "common.names.namespace" . | quote }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + app.kubernetes.io/component: controller + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.controller.pdb.minAvailable }} + minAvailable: {{ .Values.controller.pdb.minAvailable }} + {{- end }} + {{- if or .Values.controller.pdb.maxUnavailable (not .Values.controller.pdb.minAvailable) }} + maxUnavailable: {{ .Values.controller.pdb.maxUnavailable | default 1 }} + {{- end }} + {{- $podLabels := include "common.tplvalues.merge" (dict "values" (list .Values.controller.podLabels .Values.commonLabels) "context" .) }} + selector: + matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} + app.kubernetes.io/component: controller +{{- end }} diff --git a/bitnami/argo-cd/templates/applicationset/pdb.yaml b/bitnami/argo-cd/templates/applicationset/pdb.yaml new file mode 100644 index 00000000000000..78f659d9852302 --- /dev/null +++ b/bitnami/argo-cd/templates/applicationset/pdb.yaml @@ -0,0 +1,28 @@ +{{- /* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{- if .Values.applicationSet.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "argocd.applicationSet" . }} + namespace: {{ include "common.names.namespace" . | quote }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + app.kubernetes.io/component: applicationSet + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.applicationSet.pdb.minAvailable }} + minAvailable: {{ .Values.applicationSet.pdb.minAvailable }} + {{- end }} + {{- if or .Values.applicationSet.pdb.maxUnavailable (not .Values.applicationSet.pdb.minAvailable) }} + maxUnavailable: {{ .Values.applicationSet.pdb.maxUnavailable | default 1 }} + {{- end }} + {{- $podLabels := include "common.tplvalues.merge" (dict "values" (list .Values.applicationSet.podLabels .Values.commonLabels) "context" .) }} + selector: + matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} + app.kubernetes.io/component: applicationSet +{{- end }} diff --git a/bitnami/argo-cd/templates/dex/pdb.yaml b/bitnami/argo-cd/templates/dex/pdb.yaml new file mode 100644 index 00000000000000..b0fdb3a778a00a --- /dev/null +++ b/bitnami/argo-cd/templates/dex/pdb.yaml @@ -0,0 +1,28 @@ +{{- /* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{- if .Values.dex.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "argocd.dex" . }} + namespace: {{ include "common.names.namespace" . | quote }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + app.kubernetes.io/component: dex + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.dex.pdb.minAvailable }} + minAvailable: {{ .Values.dex.pdb.minAvailable }} + {{- end }} + {{- if or .Values.dex.pdb.maxUnavailable (not .Values.dex.pdb.minAvailable) }} + maxUnavailable: {{ .Values.dex.pdb.maxUnavailable | default 1 }} + {{- end }} + {{- $podLabels := include "common.tplvalues.merge" (dict "values" (list .Values.dex.podLabels .Values.commonLabels) "context" .) }} + selector: + matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} + app.kubernetes.io/component: dex +{{- end }} diff --git a/bitnami/argo-cd/templates/notifications/pdb.yaml b/bitnami/argo-cd/templates/notifications/pdb.yaml new file mode 100644 index 00000000000000..faed9581564539 --- /dev/null +++ b/bitnami/argo-cd/templates/notifications/pdb.yaml @@ -0,0 +1,28 @@ +{{- /* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{- if .Values.notifications.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "argocd.notifications" . }} + namespace: {{ include "common.names.namespace" . | quote }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + app.kubernetes.io/component: notifications + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.notifications.pdb.minAvailable }} + minAvailable: {{ .Values.notifications.pdb.minAvailable }} + {{- end }} + {{- if or .Values.notifications.pdb.maxUnavailable (not .Values.notifications.pdb.minAvailable) }} + maxUnavailable: {{ .Values.notifications.pdb.maxUnavailable | default 1 }} + {{- end }} + {{- $podLabels := include "common.tplvalues.merge" (dict "values" (list .Values.notifications.podLabels .Values.commonLabels) "context" .) }} + selector: + matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} + app.kubernetes.io/component: notifications +{{- end }} diff --git a/bitnami/argo-cd/templates/repo-server/pdb.yaml b/bitnami/argo-cd/templates/repo-server/pdb.yaml new file mode 100644 index 00000000000000..4f67a2235d8e15 --- /dev/null +++ b/bitnami/argo-cd/templates/repo-server/pdb.yaml @@ -0,0 +1,28 @@ +{{- /* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{- if and .Values.repoServer.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "argocd.repo-server" . }} + namespace: {{ include "common.names.namespace" . | quote }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + app.kubernetes.io/component: repoServer + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.repoServer.pdb.minAvailable }} + minAvailable: {{ .Values.repoServer.pdb.minAvailable }} + {{- end }} + {{- if or .Values.repoServer.pdb.maxUnavailable (not .Values.repoServer.pdb.minAvailable) }} + maxUnavailable: {{ .Values.repoServer.pdb.maxUnavailable | default 1 }} + {{- end }} + {{- $podLabels := include "common.tplvalues.merge" (dict "values" (list .Values.repoServer.podLabels .Values.commonLabels) "context" .) }} + selector: + matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} + app.kubernetes.io/component: repoServer +{{- end }} diff --git a/bitnami/argo-cd/templates/server/pdb.yaml b/bitnami/argo-cd/templates/server/pdb.yaml new file mode 100644 index 00000000000000..93224c293cc4e0 --- /dev/null +++ b/bitnami/argo-cd/templates/server/pdb.yaml @@ -0,0 +1,28 @@ +{{- /* +Copyright Broadcom, Inc. All Rights Reserved. +SPDX-License-Identifier: APACHE-2.0 +*/}} + +{{- if and .Values.server.pdb.create }} +apiVersion: {{ include "common.capabilities.policy.apiVersion" . }} +kind: PodDisruptionBudget +metadata: + name: {{ include "argocd.server" . }} + namespace: {{ include "common.names.namespace" . | quote }} + labels: {{- include "common.labels.standard" ( dict "customLabels" .Values.commonLabels "context" $ ) | nindent 4 }} + app.kubernetes.io/component: server + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + {{- if .Values.server.pdb.minAvailable }} + minAvailable: {{ .Values.server.pdb.minAvailable }} + {{- end }} + {{- if or .Values.server.pdb.maxUnavailable (not .Values.server.pdb.minAvailable) }} + maxUnavailable: {{ .Values.server.pdb.maxUnavailable | default 1 }} + {{- end }} + {{- $podLabels := include "common.tplvalues.merge" (dict "values" (list .Values.server.podLabels .Values.commonLabels) "context" .) }} + selector: + matchLabels: {{- include "common.labels.matchLabels" ( dict "customLabels" $podLabels "context" $ ) | nindent 6 }} + app.kubernetes.io/component: server +{{- end }} diff --git a/bitnami/argo-cd/values.yaml b/bitnami/argo-cd/values.yaml index 129ea65afde0fb..fe1ae0aaa1385b 100644 --- a/bitnami/argo-cd/values.yaml +++ b/bitnami/argo-cd/values.yaml @@ -633,6 +633,16 @@ controller: ## command: ['sh', '-c', 'echo "hello world"'] ## initContainers: [] + ## Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb + ## @param controller.pdb.create Enable/disable a Pod Disruption Budget creation + ## @param controller.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled + ## @param controller.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `controller.pdb.minAvailable` and `controller.pdb.maxUnavailable` are empty. + ## + pdb: + create: true + minAvailable: "" + maxUnavailable: "" ## @section Argo CD ApplicationSet controller parameters ## ApplicationSet controller @@ -1124,6 +1134,16 @@ applicationSet: ## @param applicationSet.webhook.ingress.tls Ingress TLS configuration ## tls: [] + ## Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb + ## @param applicationSet.pdb.create Enable/disable a Pod Disruption Budget creation + ## @param applicationSet.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled + ## @param applicationSet.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `controller.pdb.minAvailable` and `controller.pdb.maxUnavailable` are empty. + ## + pdb: + create: true + minAvailable: "" + maxUnavailable: "" ## @section Argo CD notifications controller parameters ## notifications controller @@ -1886,6 +1906,16 @@ notifications: ## @param notifications.bots.slack.extraEnvVarsSecret Name of existing Secret containing extra env vars for Argo CD Slack bot nodes ## extraEnvVarsSecret: "" + ## Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb + ## @param notifications.pdb.create Enable/disable a Pod Disruption Budget creation + ## @param notifications.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled + ## @param notifications.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `notifications.pdb.minAvailable` and `notifications.pdb.maxUnavailable` are empty. + ## + pdb: + create: true + minAvailable: "" + maxUnavailable: "" ## @section Argo CD server Parameters ## Argo CD server configuration @@ -2684,6 +2714,16 @@ server: ## @param server.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`. ## annotations: {} + ## Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb + ## @param server.pdb.create Enable/disable a Pod Disruption Budget creation + ## @param server.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled + ## @param server.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `server.pdb.minAvailable` and `server.pdb.maxUnavailable` are empty. + ## + pdb: + create: true + minAvailable: "" + maxUnavailable: "" ## @section Argo CD repo server Parameters ## Argo CD repository server configuration @@ -3187,6 +3227,16 @@ repoServer: ## command: ['sh', '-c', 'echo "hello world"'] ## initContainers: [] + ## Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb + ## @param repoServer.pdb.create Enable/disable a Pod Disruption Budget creation + ## @param repoServer.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled + ## @param repoServer.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `repoServer.pdb.minAvailable` and `repoServer.pdb.maxUnavailable` are empty. + ## + pdb: + create: true + minAvailable: "" + maxUnavailable: "" ## @section Dex Parameters ## Dex configuration @@ -3710,6 +3760,16 @@ dex: ## command: ['sh', '-c', 'echo "hello world"'] ## initContainers: [] + ## Pod Disruption Budget configuration + ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb + ## @param dex.pdb.create Enable/disable a Pod Disruption Budget creation + ## @param dex.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled + ## @param dex.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `dex.pdb.minAvailable` and `dex.pdb.maxUnavailable` are empty. + ## + pdb: + create: true + minAvailable: "" + maxUnavailable: "" ## @section Shared config for Argo CD components config: ## @param config.knownHosts [string] Known hosts to be added to the known hosts list by default. Check the values to see the default value