feat(argo-workflows): Updated supported workers parameters (#2297)

* feat(argo-workflows): Updated supported workers parameters

Change
------
Based on argo-workflows [scaling documents](https://argoproj.github.io/argo-workflows/scaling/)
it's possible to set following workers values: `--workflow-workers`, `--workflow-ttl-workers`, `--pod-cleanup-workers`
and statring 3.5 `--cron-workflow-workers`. This change allows chart
consumers to take advatage of _all_ these parameters.

Testing
-------
```
helm upgrade argowf charts/argo-workflows -n argo --values charts/argo-workflows/values.yaml --create-namespace --debug | grep -A70 "Source: argo-workflows/templates/controller/workflow-controller-deployment.yaml" | grep workers

helm upgrade argowf charts/argo-workflows -n argo --values charts/argo-workflows/values.yaml --create-namespace --debug | grep -A70 "Source: argo-workflows/templates/controller/workflow-controller-deployment.yaml" | grep -A1 workers
          - "--workflow-workers"
          - "10"

helm upgrade argowf charts/argo-workflows -n argo --values charts/argo-workflows/values.yaml --create-namespace --debug | grep -A70 "Source: argo-workflows/templates/controller/workflow-controller-deployment.yaml" | grep -A1 workers
          - "--workflow-workers"
          - "10"
          - "--workflow-ttl-workers"
          - "20"

helm upgrade argowf charts/argo-workflows -n argo --values charts/argo-workflows/values.yaml --create-namespace --debug | grep -A70 "Source: argo-workflows/templates/controller/workflow-controller-deployment.yaml" | grep -A1 workers
          - "--workflow-workers"
          - "10"
          - "--workflow-ttl-workers"
          - "20"
          - "--pod-cleanup-workers"
          - "30"

helm upgrade argowf charts/argo-workflows -n argo --values charts/argo-workflows/values.yaml --create-namespace --debug | grep -A70 "Source: argo-workflows/templates/controller/workflow-controller-deployment.yaml" | grep -A1 workers
          - "--workflow-workers"
          - "10"
          - "--workflow-ttl-workers"
          - "20"
          - "--pod-cleanup-workers"
          - "30"
          - "--cron-workflow-workers"
          - "40"
```

Signed-off-by: Evgeny Khatko <owen.tko@gmail.com>
Signed-off-by: Evgeny Khatko <ekhatko@paypal.com>

* Addressing PR feedback.

Signed-off-by: Evgeny Khatko <ekhatko@paypal.com>

* newline

Signed-off-by: Tim Collins <45351296+tico24@users.noreply.github.com>

* Update Chart.yaml

Signed-off-by: Tim Collins <45351296+tico24@users.noreply.github.com>

* Update Chart.yaml

Signed-off-by: Tim Collins <45351296+tico24@users.noreply.github.com>

---------

Signed-off-by: Evgeny Khatko <owen.tko@gmail.com>
Signed-off-by: Evgeny Khatko <ekhatko@paypal.com>
Signed-off-by: Tim Collins <45351296+tico24@users.noreply.github.com>
Co-authored-by: Evgeny Khatko <ekhatko@paypal.com>
Co-authored-by: Tim Collins <45351296+tico24@users.noreply.github.com>
This commit is contained in:
Ujin 2023-10-24 08:34:49 -04:00 committed by GitHub
parent 14e2e32bed
commit a67424d0c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 3 deletions

View file

@ -3,7 +3,7 @@ appVersion: v3.5.0
name: argo-workflows
description: A Helm chart for Argo Workflows
type: application
version: 0.36.2
version: 0.37.0
icon: https://argoproj.github.io/argo-workflows/assets/logo.png
home: https://github.com/argoproj/argo-helm
sources:
@ -16,5 +16,5 @@ annotations:
fingerprint: 2B8F22F57260EFA67BE1C5824B11F800CD9D2252
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
artifacthub.io/changes: |
- kind: added
description: Add sample of PostgreSQL ssl entries in values.yaml
- kind: changed
description: Updated supported scaling parameters based on https://argoproj.github.io/argo-workflows/scaling/

View file

@ -142,6 +142,7 @@ Fields to note:
| controller.affinity | object | `{}` | Assign custom [affinity] rules |
| controller.clusterWorkflowTemplates.enabled | bool | `true` | Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates. |
| controller.columns | list | `[]` | Configure Argo Server to show custom [columns] |
| 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.extraArgs | list | `[]` | Extra arguments to be added to the controller |
| controller.extraContainers | list | `[]` | Extra containers to be added to the controller deployment |
@ -182,6 +183,7 @@ Fields to note:
| controller.pdb.enabled | bool | `false` | Configure [Pod Disruption Budget] for the controller pods |
| controller.persistence | object | `{}` | enable persistence using postgres |
| controller.podAnnotations | object | `{}` | podAnnotations is an optional map of annotations to be applied to the controller Pods |
| controller.podCleanupWorkers | string | `nil` | Number of pod cleanup workers |
| controller.podGCDeleteDelayDuration | string | `5s` (Argo Workflows default) | The duration in seconds before the pods in the GC queue get deleted. A zero value indicates that the pods will be deleted immediately. |
| controller.podGCGracePeriodSeconds | string | `30` seconds (Kubernetes default) | Specifies the duration in seconds before a terminating pod is forcefully killed. A zero value indicates that the pod will be forcefully terminated immediately. |
| controller.podLabels | object | `{}` | Optional labels to add to the controller pods |
@ -221,6 +223,7 @@ Fields to note:
| controller.workflowDefaults | object | `{}` | Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level. Only valid for 2.7+ |
| controller.workflowNamespaces | list | `["default"]` | Specify all namespaces where this workflow controller instance will manage workflows. This controls where the service account and RBAC resources will be created. Only valid when singleNamespace is false. |
| controller.workflowRestrictions | object | `{}` | Restricts the Workflows that the controller will process. Only valid for 2.9+ |
| controller.workflowTTLWorkers | string | `nil` | Number of workflow TTL workers |
| controller.workflowWorkers | string | `nil` | Number of workflow workers |
### Workflow Main Container

View file

@ -60,6 +60,18 @@ spec:
- "--workflow-workers"
- {{ . | quote }}
{{- end }}
{{- with .Values.controller.workflowTTLWorkers }}
- "--workflow-ttl-workers"
- {{ . | quote }}
{{- end }}
{{- with .Values.controller.podCleanupWorkers }}
- "--pod-cleanup-workers"
- {{ . | quote }}
{{- end }}
{{- with .Values.controller.cronWorkflowWorkers }}
- "--cron-workflow-workers"
- {{ . | quote }}
{{- end }}
{{- with .Values.controller.extraArgs }}
{{- toYaml . | nindent 10 }}
{{- end }}

View file

@ -180,6 +180,13 @@ controller:
# -- Number of workflow workers
workflowWorkers: # 32
# -- Number of workflow TTL workers
workflowTTLWorkers: # 4
# -- Number of pod cleanup workers
podCleanupWorkers: # 4
# -- Number of cron workflow workers
# Only valid for 3.5+
cronWorkflowWorkers: # 8
# -- Restricts the Workflows that the controller will process.
# Only valid for 2.9+
workflowRestrictions: {}