argo-helm/charts/argo-workflows/README.md.gotmpl

138 lines
7.2 KiB
Plaintext
Raw Normal View History

# Argo Workflows Chart
This is a **community maintained** chart. It is used to set up argo and its needed dependencies through one command. This is used in conjunction with [helm](https://github.com/kubernetes/helm).
If you want your deployment of this helm chart to most closely match the [argo CLI](https://github.com/argoproj/argo-workflows), you should deploy it in the `kube-system` namespace.
## Pre-Requisites
This chart uses an install hook to configure the CRD definition. Installation of CRDs is a somewhat privileged process in itself and in RBAC enabled clusters the `default` service account for namespaces does not typically have the ability to create these.
A few options are:
- Manually create a ServiceAccount in the Namespace in which your release will be deployed w/ appropriate bindings to perform this action and set the `serviceAccountName` field in the Workflow spec
- Augment the `default` ServiceAccount permissions in the Namespace in which your Release is deployed to have the appropriate permissions
## Usage Notes
### Workflow controller
This chart defaults to setting the `controller.instanceID.enabled` to `false` now, which means the deployed controller will act upon any workflow deployed to the cluster. If you would like to limit the behavior and deploy multiple workflow controllers, please use the `controller.instanceID.enabled` attribute along with one of its configuration options to set the `instanceID` of the workflow controller to be properly scoped for your needs.
### Workflow server authentication
By default, the chart requires some kind of authentication mechanism. This adopts the [default behaviour from the Argo project](https://github.com/argoproj/argo-workflows/pull/5211) itself. However, for local development purposes, or cases where your gateway authentication is covered by some other means, you can set the authentication mode for the Argo server by setting the `server.extraArgs: [--auth-mode=server]`. There are a few additional comments in the values.yaml file itself, including commented-out settings to disable authentication on the server UI itself using the same `--auth-mode=server` setting.
## Values
The `values.yaml` contains items used to tweak a deployment of this chart.
Fields to note:
- `controller.instanceID.enabled`: If set to true, the Argo Controller will **ONLY** monitor Workflow submissions with a `--instanceid` attribute
- `controller.instanceID.useReleaseName`: If set to true then chart set controller instance id to release name
- `controller.instanceID.explicitID`: Allows customization of an instance id for the workflow controller to monitor
- `singleNamespace`: When true, restricts the workflow controller to operate
in just the single namespace (that one of the Helm release).
- `controller.workflowNamespaces`: This is a list of namespaces where the
workflow controller will manage workflows. Only valid when `singleNamespace`
is false.
### General parameters
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
feat(argo-workflows): Add mainContainer config in configmap (#1310) * Specify logformat for Argo-CD notifications component (#1303) * Add: Specify logformat for Argo-CD notifications component Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> * Update: Chart changelog Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> * Fix: documentation Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * feat(argo-rollouts): readonly dashboard (#1304) * feat-argo-rollouts-readonly-dashboard Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com>" Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> * fixing readme values version link Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * fix(argo-workflows): Remove unsupported value (#1302) * fix(argo-workflows): Add comment about removed flag Signed-off-by: yu-croco <yuki.kita22@gmail.com> * fix(argo-workflows): Remove unsupported value Signed-off-by: yu-croco <yuki.kita22@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add mainContainer config in configmap Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * update version Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add mainContainer to values Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add mainContainer to readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add changelog Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add Workflow Main Container key Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * fix(argo-cd): AppSet and Notifications respect global.podAnnotations (#1308) Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * feat(argo-cd): support separate imagePullSecrets (#1311) Signed-off-by: yu-croco <yuki.kita22@gmail.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * chore: Update some tools' version on GitHub Actions (#1312) Signed-off-by: yu-croco <yuki.kita22@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * chore(CODEOWNERS): Add jmeridth as approver (#1271) Signed-off-by: jmeridth <jmeridth@gmail.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * feat(argo-cd): Support annotations in argocd-configs secrets (#1314) * feat(argo-cd): support annotations in argocd-configs secrets Signed-off-by: yu-croco <yuki.kita22@gmail.com> * fix(argo-cd): align to exitsing format Signed-off-by: yu-croco <yuki.kita22@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add new line to fix failed liniting Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * remove auto-generating readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * match readme as per the comment in values file Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add image pullpolicy to values.yaml Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add image pullpolicy to values.yaml Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add image pullpolicy to readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * fix ordering in readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * Exclude "mainContainer" prefix from General parameters Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Co-authored-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> Co-authored-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Co-authored-by: Aikawa <yuki.kita22@gmail.com> Co-authored-by: Prateek Khera <mail.prateekkhera@gmail.com> Co-authored-by: JM" (Jason Meridth) <jmeridth@gmail.com>
2022-06-10 16:50:01 +00:00
{{- if not (or (hasPrefix "workflow" .Key) (hasPrefix "controller" .Key) (hasPrefix "executor" .Key) (hasPrefix "server" .Key) (hasPrefix "artifactRepository" .Key) (hasPrefix "use" .Key) (hasPrefix "mainContainer" .Key) ) }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
### Workflow
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
{{- if hasPrefix "workflow" .Key }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
### Workflow Controller
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
{{- if hasPrefix "controller" .Key }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
feat(argo-workflows): Add mainContainer config in configmap (#1310) * Specify logformat for Argo-CD notifications component (#1303) * Add: Specify logformat for Argo-CD notifications component Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> * Update: Chart changelog Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> * Fix: documentation Signed-off-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * feat(argo-rollouts): readonly dashboard (#1304) * feat-argo-rollouts-readonly-dashboard Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com>" Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> * fixing readme values version link Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> Signed-off-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * fix(argo-workflows): Remove unsupported value (#1302) * fix(argo-workflows): Add comment about removed flag Signed-off-by: yu-croco <yuki.kita22@gmail.com> * fix(argo-workflows): Remove unsupported value Signed-off-by: yu-croco <yuki.kita22@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add mainContainer config in configmap Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * update version Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add mainContainer to values Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add mainContainer to readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add changelog Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add Workflow Main Container key Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * fix(argo-cd): AppSet and Notifications respect global.podAnnotations (#1308) Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * feat(argo-cd): support separate imagePullSecrets (#1311) Signed-off-by: yu-croco <yuki.kita22@gmail.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * chore: Update some tools' version on GitHub Actions (#1312) Signed-off-by: yu-croco <yuki.kita22@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * chore(CODEOWNERS): Add jmeridth as approver (#1271) Signed-off-by: jmeridth <jmeridth@gmail.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * feat(argo-cd): Support annotations in argocd-configs secrets (#1314) * feat(argo-cd): support annotations in argocd-configs secrets Signed-off-by: yu-croco <yuki.kita22@gmail.com> * fix(argo-cd): align to exitsing format Signed-off-by: yu-croco <yuki.kita22@gmail.com> Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add new line to fix failed liniting Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * remove auto-generating readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * match readme as per the comment in values file Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add image pullpolicy to values.yaml Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add image pullpolicy to values.yaml Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * add image pullpolicy to readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * fix ordering in readme Signed-off-by: Prateek Khera <mail.prateekkhera@gmail.com> * Exclude "mainContainer" prefix from General parameters Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Co-authored-by: Nicolas Lamirault <nicolas.lamirault@gmail.com> Co-authored-by: foxtel-temujincabigao <86087373+foxtel-temujincabigao@users.noreply.github.com> Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com> Co-authored-by: Aikawa <yuki.kita22@gmail.com> Co-authored-by: Prateek Khera <mail.prateekkhera@gmail.com> Co-authored-by: JM" (Jason Meridth) <jmeridth@gmail.com>
2022-06-10 16:50:01 +00:00
### Workflow Main Container
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
{{- if hasPrefix "mainContainer" .Key }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
### Workflow Executor
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
{{- if hasPrefix "executor" .Key }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
### Workflow Server
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
{{- if hasPrefix "server" .Key }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
### Artifact Repository
| Key | Type | Default | Description |
|-----|------|---------|-------------|
{{- range .Values }}
{{- if or (hasPrefix "artifactRepository" .Key) (hasPrefix "use" .Key) }}
| {{ .Key }} | {{ .Type }} | {{ if .Default }}{{ .Default }}{{ else }}{{ .AutoDefault }}{{ end }} | {{ if .Description }}{{ .Description }}{{ else }}{{ .AutoDescription }}{{ end }} |
{{- end }}
{{- end }}
## Breaking changes from the deprecated `argo` chart
1. the `installCRD` value has been removed. CRDs are now only installed from the conventional crds/ directory
1. the CRDs were updated to `apiextensions.k8s.io/v1`
1. the container image registry/project/tag format was changed to be more in line with the more common
```yaml
image:
registry: quay.io
repository: argoproj/argocli
tag: v3.0.1
```
this also makes it easier for automatic update tooling (eg. renovate bot) to detect and update images.
1. switched to quay.io as the default registry for all images
1. removed any included usage of Minio
1. aligned the configuration of serviceAccounts with the argo-cd chart, ie: what used to be `server.createServiceAccount` is now `server.serviceAccount.create`
1. moved the field previously known as `telemetryServicePort` inside the `telemetryConfig` as `telemetryConfig.servicePort` - same for `metricsConfig`
[affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
[links]: https://argoproj.github.io/argo-workflows/links/
[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/
[Pod Disruption Budget]: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
[values.yaml]: values.yaml