Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions charts/argo-workflows/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ appVersion: v4.0.5
name: argo-workflows
description: A Helm chart for Argo Workflows
type: application
version: 1.0.13
version: 1.0.14
icon: https://argo-workflows.readthedocs.io/en/stable/assets/logo.png
home: https://github.com/argoproj/argo-helm
sources:
Expand All @@ -16,5 +16,5 @@ annotations:
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
artifacthub.io/changes: |
- kind: changed
description: Use Recreate deployment strategy when controller replicas is 1 to prevent two controllers running during rollout
- kind: added
description: Add `controller.deploymentStrategy` and `server.deploymentStrategy` values so operators running 2+ replicas can opt into a zero-downtime rolling update strategy
2 changes: 2 additions & 0 deletions charts/argo-workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ Fields to note:
| controller.configMap.name | string | `""` | ConfigMap name |
| controller.cronWorkflowWorkers | string | `nil` | Number of cron workflow workers Only valid for 3.5+ |
| controller.deploymentAnnotations | object | `{}` | deploymentAnnotations is an optional map of annotations to be applied to the controller Deployment |
| controller.deploymentStrategy | object | `{}` | Deployment strategy for the workflow-controller. When set, it takes precedence over the chart's default of `type: Recreate` for `replicas: 1`, allowing operators with `replicas: 2+` to opt into a zero-downtime rolling strategy (e.g. `maxUnavailable: 0, maxSurge: 1`). |
| controller.extraArgs | list | `[]` | Extra arguments to be added to the controller |
| controller.extraContainers | list | `[]` | Extra containers to be added to the controller deployment |
| controller.extraEnv | list | `[]` | Extra environment variables to provide to the controller container |
Expand Down Expand Up @@ -408,6 +409,7 @@ Fields to note:
| server.clusterWorkflowTemplates.enableEditing | bool | `true` | Give the server permissions to edit ClusterWorkflowTemplates. |
| server.clusterWorkflowTemplates.enabled | bool | `true` | Create a ClusterRole and CRB for the server to access ClusterWorkflowTemplates. |
| server.deploymentAnnotations | object | `{}` | optional map of annotations to be applied to the ui Deployment |
| server.deploymentStrategy | object | `{}` | Deployment strategy for the argo server. When unset, Kubernetes uses the default RollingUpdate (25%/25%); set this to opt into zero-downtime rolls (e.g. `maxUnavailable: 0, maxSurge: 1`) when running 2+ replicas. |
| server.enabled | bool | `true` | Deploy the Argo Server |
| server.extraArgs | list | `[]` | Extra arguments to provide to the Argo server binary. |
| server.extraContainers | list | `[]` | Extra containers to be added to the server deployment |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ metadata:
spec:
replicas: {{ .Values.controller.replicas }}
revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit }}
{{- if eq (int .Values.controller.replicas) 1 }}
{{- if .Values.controller.deploymentStrategy }}
strategy:
{{- toYaml .Values.controller.deploymentStrategy | nindent 4 }}
{{- else if eq (int .Values.controller.replicas) 1 }}
strategy:
type: Recreate
{{- end }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ spec:
replicas: {{ .Values.server.replicas }}
{{- end }}
revisionHistoryLimit: {{ .Values.server.revisionHistoryLimit }}
{{- with .Values.server.deploymentStrategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
selector:
matchLabels:
{{- include "argo-workflows.selectorLabels" (dict "context" . "name" .Values.server.name) | nindent 6 }}
Expand Down
20 changes: 20 additions & 0 deletions charts/argo-workflows/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,16 @@ controller:
# -- The number of revisions to keep.
revisionHistoryLimit: 10

# -- Deployment strategy for the workflow-controller. When set, it takes
# precedence over the chart's default of `type: Recreate` for `replicas: 1`,
# allowing operators with `replicas: 2+` to opt into a zero-downtime rolling
# strategy (e.g. `maxUnavailable: 0, maxSurge: 1`).
deploymentStrategy: {}
# type: RollingUpdate
# rollingUpdate:
# maxUnavailable: 0
# maxSurge: 1

pdb:
# -- Configure [Pod Disruption Budget] for the controller pods
enabled: false
Expand Down Expand Up @@ -628,6 +638,16 @@ server:
replicas: 1
# -- The number of revisions to keep.
revisionHistoryLimit: 10

# -- Deployment strategy for the argo server. When unset, Kubernetes uses
# the default RollingUpdate (25%/25%); set this to opt into zero-downtime
# rolls (e.g. `maxUnavailable: 0, maxSurge: 1`) when running 2+ replicas.
deploymentStrategy: {}
# type: RollingUpdate
# rollingUpdate:
# maxUnavailable: 0
# maxSurge: 1

## Argo Server Horizontal Pod Autoscaler
autoscaling:
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo Server
Expand Down