From ec9e45afde1f08ed8e14eec313a74b4a11324026 Mon Sep 17 00:00:00 2001 From: Tim Campbell Date: Tue, 9 Jul 2024 15:05:15 +0200 Subject: [PATCH] Allow customization of rollout strategies for deployments --- Chart.yaml | 2 +- templates/deployment-sidekiq.yaml | 5 +++-- templates/deployment-streaming.yaml | 8 +++----- templates/deployment-web.yaml | 8 +++----- values.yaml | 18 ++++++++++++++++++ 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/Chart.yaml b/Chart.yaml index 57768b3..8bb36ad 100644 --- a/Chart.yaml +++ b/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time # you make changes to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 5.1.3 +version: 5.2.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/templates/deployment-sidekiq.yaml b/templates/deployment-sidekiq.yaml index 1870cf4..e998a3c 100644 --- a/templates/deployment-sidekiq.yaml +++ b/templates/deployment-sidekiq.yaml @@ -18,8 +18,9 @@ spec: {{- if (gt (int .replicas) 1) }} {{ fail "The scheduler queue should never have more than 1 replicas" }} {{- end }} - strategy: - type: Recreate + {{- end }} + {{- if $context.Values.mastodon.sidekiq.updateStrategy }} + strategy: {{- toYaml $context.Values.mastodon.sidekiq.updateStrategy | nindent 4 }} {{- end }} replicas: {{ .replicas }} {{- if (ne (toString $context.Values.mastodon.revisionHistoryLimit) "") }} diff --git a/templates/deployment-streaming.yaml b/templates/deployment-streaming.yaml index 3165fa2..89bd06a 100644 --- a/templates/deployment-streaming.yaml +++ b/templates/deployment-streaming.yaml @@ -13,11 +13,9 @@ spec: {{- if (ne (toString .Values.mastodon.revisionHistoryLimit) "") }} revisionHistoryLimit: {{ .Values.mastodon.revisionHistoryLimit }} {{- end }} - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 10% - maxUnavailable: 25% + {{- if .Values.mastodon.web.updateStrategy }} + strategy: {{- toYaml .Values.mastodon.web.updateStrategy | nindent 4 }} + {{- end }} selector: matchLabels: {{- include "mastodon.selectorLabels" . | nindent 6 }} diff --git a/templates/deployment-web.yaml b/templates/deployment-web.yaml index 70d1c29..2956a21 100644 --- a/templates/deployment-web.yaml +++ b/templates/deployment-web.yaml @@ -13,11 +13,9 @@ spec: {{- if (ne (toString .Values.mastodon.revisionHistoryLimit) "") }} revisionHistoryLimit: {{ .Values.mastodon.revisionHistoryLimit }} {{- end }} - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: 10% - maxUnavailable: 25% + {{- if .Values.mastodon.web.updateStrategy }} + strategy: {{- toYaml .Values.mastodon.web.updateStrategy | nindent 4 }} + {{- end }} selector: matchLabels: {{- include "mastodon.selectorLabels" . | nindent 6 }} diff --git a/values.yaml b/values.yaml index 073fd2e..cd047ec 100644 --- a/values.yaml +++ b/values.yaml @@ -138,6 +138,10 @@ mastodon: resources: {} # -- Affinity for all Sidekiq Deployments unless overwritten, overwrites .Values.affinity affinity: {} + # Rollout strategy to use when updating pods + # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy + updateStrategy: + type: Recreate # -- Topology spread constraints for Sidekiq Pods, overwrites .Values.topologySpreadConstraints topologySpreadConstraints: {} # limits: @@ -227,6 +231,13 @@ mastodon: replicas: 1 # -- Affinity for Streaming Pods, overwrites .Values.affinity affinity: {} + # Rollout strategy to use when updating pods + # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 10% + maxUnavailable: 25% # -- Topology spread constraints for Streaming Pods, overwrites .Values.topologySpreadConstraints topologySpreadConstraints: {} # -- Pod Security Context for Streaming Pods, overwrites .Values.podSecurityContext @@ -266,6 +277,13 @@ mastodon: replicas: 1 # -- Affinity for Web Pods, overwrites .Values.affinity affinity: {} + # Rollout strategy to use when updating pods + # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy + updateStrategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 10% + maxUnavailable: 25% # -- Topology spread constraints for Web Pods, overwrites .Values.topologySpreadConstraints topologySpreadConstraints: {} # -- Pod Security Context for Web Pods, overwrites .Values.podSecurityContext