feat(argo-rollout): Add configurable deployment strategy for Argo Rollouts controller

Signed-off-by: Nedal Eskaif <Nedal.Eskaif@goto.com>
This commit is contained in:
Nedal Eskaif 2024-01-05 01:06:54 +01:00
parent 9b0c33fb49
commit 89f989a98c
4 changed files with 21 additions and 5 deletions

View file

@ -1,8 +1,8 @@
apiVersion: v2 apiVersion: v2
appVersion: v1.6.4 appVersion: v1.6.6
description: A Helm chart for Argo Rollouts description: A Helm chart for Argo Rollouts
name: argo-rollouts name: argo-rollouts
version: 2.34.0 version: 2.35.0
home: https://github.com/argoproj/argo-helm home: https://github.com/argoproj/argo-helm
icon: https://argoproj.github.io/argo-rollouts/assets/logo.png icon: https://argoproj.github.io/argo-rollouts/assets/logo.png
keywords: keywords:
@ -18,5 +18,5 @@ annotations:
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252 fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
url: https://argoproj.github.io/argo-helm/pgp_keys.asc url: https://argoproj.github.io/argo-helm/pgp_keys.asc
artifacthub.io/changes: | artifacthub.io/changes: |
- kind: changed - kind: added
description: Allow setting log config for rollouts dashboard description: Allow configuring deployment strategy for the Argo Rollouts controller

View file

@ -80,6 +80,9 @@ For full list of changes please check ArtifactHub [changelog].
| controller.containerPorts.healthz | int | `8080` | Healthz container port | | controller.containerPorts.healthz | int | `8080` | Healthz container port |
| controller.containerPorts.metrics | int | `8090` | Metrics container port | | controller.containerPorts.metrics | int | `8090` | Metrics container port |
| controller.createClusterRole | bool | `true` | flag to enable creation of cluster controller role (requires cluster RBAC) | | controller.createClusterRole | bool | `true` | flag to enable creation of cluster controller role (requires cluster RBAC) |
| controller.deploymentStrategy.type | string | `""` | Deployment strategy type. Options: "Recreate" or "RollingUpdate". If not specified, defaults to "RollingUpdate". |
| controller.deploymentStrategy.rollingUpdate.maxSurge | int or string | `0` | Maximum number or percentage of additional pods that can be created during an update. |
| controller.deploymentStrategy.rollingUpdate.maxUnavailable | int or string | `0` | Maximum number or percentage of pods that can be unavailable during an update. |
| controller.deploymentAnnotations | object | `{}` | Annotations to be added to the controller deployment | | controller.deploymentAnnotations | object | `{}` | Annotations to be added to the controller deployment |
| controller.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-controller. A list of flags. | | controller.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-controller. A list of flags. |
| controller.extraContainers | list | `[]` | Literal yaml for extra containers to be added to controller deployment. | | controller.extraContainers | list | `[]` | Literal yaml for extra containers to be added to controller deployment. |

View file

@ -17,8 +17,13 @@ spec:
matchLabels: matchLabels:
app.kubernetes.io/component: {{ .Values.controller.component }} app.kubernetes.io/component: {{ .Values.controller.component }}
{{- include "argo-rollouts.selectorLabels" . | nindent 6 }} {{- include "argo-rollouts.selectorLabels" . | nindent 6 }}
{{- if .Values.controller.deploymentStrategy }}
strategy: strategy:
type: Recreate {{- toYaml .Values.controller.deploymentStrategy | nindent 4 }}
{{- else }}
strategy:
type: RollingUpdate
{{- end }}
replicas: {{ .Values.controller.replicas }} replicas: {{ .Values.controller.replicas }}
template: template:
metadata: metadata:

View file

@ -45,6 +45,14 @@ global:
controller: controller:
# -- Value of label `app.kubernetes.io/component` # -- Value of label `app.kubernetes.io/component`
component: rollouts-controller component: rollouts-controller
# -- Configuration for the deployment strategy defaults to RollingUpdate
deploymentStrategy: {}
# type: RollingUpdate
# rollingUpdate:
# maxSurge: 25%
# maxUnavailable: 25%
# -- Annotations to be added to the controller deployment # -- Annotations to be added to the controller deployment
deploymentAnnotations: {} deploymentAnnotations: {}
# -- Annotations to be added to application controller pods # -- Annotations to be added to application controller pods