diff --git a/utils/helm/speckle-server/templates/objects/deployment.yml b/utils/helm/speckle-server/templates/objects/deployment.yml index 42462820f..d11b0c7a5 100644 --- a/utils/helm/speckle-server/templates/objects/deployment.yml +++ b/utils/helm/speckle-server/templates/objects/deployment.yml @@ -14,6 +14,9 @@ spec: project: speckle-server strategy: type: RollingUpdate + rollingUpdate: + maxUnavailable: {{ .Values.objects.rollingUpdate.maxUnavailable }} + maxSurge: {{ .Values.objects.rollingUpdate.maxSurge }} template: metadata: labels: diff --git a/utils/helm/speckle-server/templates/server/deployment.yml b/utils/helm/speckle-server/templates/server/deployment.yml index 95deb9219..3f57ef6e6 100644 --- a/utils/helm/speckle-server/templates/server/deployment.yml +++ b/utils/helm/speckle-server/templates/server/deployment.yml @@ -14,6 +14,9 @@ spec: project: speckle-server strategy: type: RollingUpdate + rollingUpdate: + maxUnavailable: {{ .Values.server.rollingUpdate.maxUnavailable }} + maxSurge: {{ .Values.server.rollingUpdate.maxSurge }} template: metadata: labels: diff --git a/utils/helm/speckle-server/values.schema.json b/utils/helm/speckle-server/values.schema.json index e509cdc10..cc44b73b8 100644 --- a/utils/helm/speckle-server/values.schema.json +++ b/utils/helm/speckle-server/values.schema.json @@ -917,6 +917,21 @@ "description": "The Docker image to be used for the Speckle Server component. If blank, defaults to speckle/speckle-server:{{ .Values.docker_image_tag }}. If provided, this value should be the full path including tag. The docker_image_tag value will be ignored.", "default": "" }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxUnavailable": { + "type": "string", + "description": "The maximum number or percentage of pods that can be unavailable during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-unavailable", + "default": "25%" + }, + "maxSurge": { + "type": "string", + "description": "The maximum number or percentage of pods that can be created above the desired number of pods during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-surge", + "default": "25%" + } + } + }, "enableFe2Messaging": { "type": "boolean", "description": "If enabled, the related FE1 deployment will show banners/messages about the new frontend", @@ -1732,6 +1747,21 @@ } } }, + "rollingUpdate": { + "type": "object", + "properties": { + "maxUnavailable": { + "type": "string", + "description": "The maximum number or percentage of pods that can be unavailable during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-unavailable", + "default": "25%" + }, + "maxSurge": { + "type": "string", + "description": "The maximum number or percentage of pods that can be created above the desired number of pods during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-surge", + "default": "25%" + } + } + }, "requests": { "type": "object", "properties": { diff --git a/utils/helm/speckle-server/values.yaml b/utils/helm/speckle-server/values.yaml index 77aeed95a..8ffce498b 100644 --- a/utils/helm/speckle-server/values.yaml +++ b/utils/helm/speckle-server/values.yaml @@ -609,6 +609,13 @@ server: ## image: '' + rollingUpdate: + ## @param server.rollingUpdate.maxUnavailable The maximum number or percentage of pods that can be unavailable during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-unavailable + ## + maxUnavailable: 25% + ## @param server.rollingUpdate.maxSurge The maximum number or percentage of pods that can be created above the desired number of pods during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-surge + maxSurge: 25% + ## @param server.enableFe2Messaging If enabled, the related FE1 deployment will show banners/messages about the new frontend ## enableFe2Messaging: false @@ -1027,6 +1034,13 @@ objects: ## @param objects.inspect.port The port on which the nodejs inspect feature should be exposed port: '7000' + rollingUpdate: + ## @param objects.rollingUpdate.maxUnavailable The maximum number or percentage of pods that can be unavailable during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-unavailable + ## + maxUnavailable: 25% + ## @param objects.rollingUpdate.maxSurge The maximum number or percentage of pods that can be created above the desired number of pods during the update process. See https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#max-surge + maxSurge: 25% + requests: ## @param objects.requests.cpu The CPU that should be available on a node when scheduling this pod. ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/