From c2899f66af516e4830d127cffb531176286a37ba Mon Sep 17 00:00:00 2001 From: Jacques ROUSSEL Date: Mon, 10 Feb 2025 11:23:09 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7(helm)=20add=20pdbs=20to=20deployme?= =?UTF-8?q?nts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In order to avoid a service interruption during a Kubernetes (k8s)upgrade, we add a Pod Disruption Budget (PDB) to deployments. --- src/helm/desk/Chart.yaml | 2 +- src/helm/desk/README.md | 2 ++ src/helm/desk/templates/backend_deployment.yaml | 13 +++++++++++++ src/helm/desk/templates/frontend_deployment.yaml | 13 +++++++++++++ src/helm/desk/values.yaml | 8 ++++++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/helm/desk/Chart.yaml b/src/helm/desk/Chart.yaml index 7bedeeb..d3d1cf1 100644 --- a/src/helm/desk/Chart.yaml +++ b/src/helm/desk/Chart.yaml @@ -1,4 +1,4 @@ apiVersion: v2 type: application name: desk -version: 0.0.1 +version: 0.0.2 diff --git a/src/helm/desk/README.md b/src/helm/desk/README.md index 9e4b6f3..c480011 100644 --- a/src/helm/desk/README.md +++ b/src/helm/desk/README.md @@ -37,6 +37,7 @@ | Name | Description | Value | | ----------------------------------------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `backend.pdb.enabled` | Enable pdb on backend | `true` | | `backend.dpAnnotations` | Annotations to add to the backend Deployment | `{}` | | `backend.command` | Override the backend container command | `[]` | | `backend.args` | Override the backend container args | `[]` | @@ -86,6 +87,7 @@ | Name | Description | Value | | ------------------------------------------------------ | ----------------------------------------------------------------------------------- | ------------------------- | +| `frontend.pdb.enabled` | Enable pdb on backend | `true` | | `frontend.image.repository` | Repository to use to pull desk's frontend container image | `lasuite/people-frontend` | | `frontend.image.tag` | desk's frontend container tag | `latest` | | `frontend.image.pullPolicy` | frontend container image pull policy | `IfNotPresent` | diff --git a/src/helm/desk/templates/backend_deployment.yaml b/src/helm/desk/templates/backend_deployment.yaml index 9fdbabe..1ff5432 100644 --- a/src/helm/desk/templates/backend_deployment.yaml +++ b/src/helm/desk/templates/backend_deployment.yaml @@ -138,3 +138,16 @@ spec: emptyDir: {} {{- end }} {{- end }} +--- +{{ if .Values.backend.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ $fullName }} + namespace: {{ .Release.Namespace | quote }} +spec: + maxUnavailable: 1 + selector: + matchLabels: + {{- include "desk.common.selectorLabels" (list . $component) | nindent 6 }} +{{ end }} diff --git a/src/helm/desk/templates/frontend_deployment.yaml b/src/helm/desk/templates/frontend_deployment.yaml index 0ba61f6..d80a430 100644 --- a/src/helm/desk/templates/frontend_deployment.yaml +++ b/src/helm/desk/templates/frontend_deployment.yaml @@ -138,3 +138,16 @@ spec: emptyDir: {} {{- end }} {{- end }} +--- +{{ if .Values.frontend.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ $fullName }} + namespace: {{ .Release.Namespace | quote }} +spec: + maxUnavailable: 1 + selector: + matchLabels: + {{- include "desk.common.selectorLabels" (list . $component) | nindent 6 }} +{{ end }} diff --git a/src/helm/desk/values.yaml b/src/helm/desk/values.yaml index 8def218..ddbbb14 100644 --- a/src/helm/desk/values.yaml +++ b/src/helm/desk/values.yaml @@ -72,6 +72,10 @@ ingressAdmin: ## @section backend backend: + ## @param backend.pdb.enabled Enable pdb on backend + pdb: + enabled: true + ## @param backend.dpAnnotations Annotations to add to the backend Deployment dpAnnotations: {} @@ -179,6 +183,10 @@ backend: ## @section frontend frontend: + ## @param frontend.pdb.enabled Enable pdb on backend + pdb: + enabled: true + ## @param frontend.image.repository Repository to use to pull desk's frontend container image ## @param frontend.image.tag desk's frontend container tag ## @param frontend.image.pullPolicy frontend container image pull policy