argocd-helm/charts/argo-workflows
Rein van 't Veer 37277315ce
feat(argo-workflows): Multiple workflow namespaces (#824)
* allow workflow to be run in multiple namespaces, bump chart version

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* update helm install instructions

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* fix indents

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* add newlines

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* bump chart version

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* default to "argo" namespace for workflow service account

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* simplify setting service account, fix syntactical error in defaulting to "argo" namespace

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* Bump only the chart version, revert bumping the controller version: 3.0.8 does not exist yet as a workflow-controller image version

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* don't set a namespace if there isn't one provided

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* bump version

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* re-use controller.workflowNamespaces instead of introducing workflow.namespaces

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* re-use controller.workflowNamespaces instead of introducing workflow.namespaces

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* re-use controller.workflowNamespaces instead of introducing workflow.namespaces

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* re-use controller.workflowNamespaces instead of introducing workflow.namespaces, add additional inline comments on rbac.create effect

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* compress namespaces from controller.workflowNamespaces and workflow.namespace into single loop iteration

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* compress namespaces from controller.workflowNamespaces and workflow.namespace into single loop iteration

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* compress namespaces from controller.workflowNamespaces and workflow.namespace into single loop iteration

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* dro now-redundant branch for controller.workflowNamespaces

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* use template helper "argo-workflows.fullname" instead of release name in order to be able to override the service account name

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* add missing "template" keyword

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* drop redundant $namespace assignment that was already moved inside the "range" function

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* replace "define" templates with simple values now that controller.workflowNamespaces and workflow.namespace are unified into a single "range" iteration

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* drop redundant $namespace assignment that was already moved inside the "range" function

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* inline "define" templates with simple values now that controller.workflowNamespaces and workflow.namespace are unified into a single "range" iteration

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* inline "define" templates with simple values now that controller.workflowNamespaces and workflow.namespace are unified into a single "range" iteration

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* add missing "$" to denote target for templating the workflows fullname helper

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* restore `with` blocks for service account name and service account annotations

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* drop validations: considering cases of `workflowNamespaces`, `namespace` and `singleNamespace`

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* include case for single namespaces with default ("") namespace, otherwise (ternary) combine the workflow namespace and workflowNamespaces from the controller settings into a list to iterate over

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* wrap namespace configuration in `with` block to prevent setting it to ""

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* fix append vs. concat bug: append workflowNamespace to (possibly 0-lenght) list of controller.workflowNamespaces

Signed-off-by: reinvantveer <rein.van.t.veer@geodan.nl>

* fix namespace range with additional check for either single namespace being false, or append to the workflow namespaces: the first non-null (coalesce) from the workflow namespace or the namespace Argo is being deployed to.

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* add changelog entries

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

* unwrap (inline) with-block for service account name

Signed-off-by: reinvantveer <reinvantveer@gmail.com>

Co-authored-by: Vlad Losev <vladlosev@users.noreply.github.com>
2021-07-20 11:18:26 -07:00
..
ci chore!: Chart Publications via Github Workflow (#741) 2021-05-21 17:59:30 +02:00
crds feat(argo-workflows): added new argo-workflows chart and deprecated argo chart (#668) 2021-05-21 14:19:05 +02:00
templates feat(argo-workflows): Multiple workflow namespaces (#824) 2021-07-20 11:18:26 -07:00
.helmignore fix(argo-workflows): Observe 'controller.serviceAccount.create' (#787) 2021-06-03 19:10:55 +02:00
Chart.yaml feat(argo-workflows): Multiple workflow namespaces (#824) 2021-07-20 11:18:26 -07:00
README.md feat(argo-workflows): added new argo-workflows chart and deprecated argo chart (#668) 2021-05-21 14:19:05 +02:00
values.yaml feat(argo-workflows): Multiple workflow namespaces (#824) 2021-07-20 11:18:26 -07:00

Argo Workflows Chart

This is a community maintained chart. It is used to set up argo and it's needed dependencies through one command. This is used in conjunction with helm.

If you want your deployment of this helm chart to most closely match the argo CLI, 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 do create these.

A few options are:

  • Manually create a ServiceAccount in the Namespace which your release will be deployed w/ appropriate bindings to perform this action and set the init.serviceAccount attribute
  • Augment the default ServiceAccount permissions in the Namespace in which your Release is deployed to have the appropriate permissions

Usage Notes

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 it's configuration options to set the instanceID of the workflow controller to be properly scoped for your needs.

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
  • controller.workflowNamespaces: This is a list of namespaces where workflows will be ran

Breaking changes from the deprecated argo chart

  1. the installCRD value has been removed. CRDs are now only installed from the conventional crds/ directory

  2. the CRDs were updated to apiextensions.k8s.io/v1

  3. the container image registry/project/tag format was changed to be more in line with the more common

    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.

  4. switched to quay.io as the default registry for all images

  5. removed any included usage of Minio

  6. aligned the configuration of serviceAccounts with the argo-cd chart, ie: what used to be server.createServiceAccount is now server.serviceAccount.create

  7. moved the previously known as telemetryServicePort inside the telemetryConfig as telemetryConfig.servicePort - same for metricsConfig