1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
14## @param global.imageRegistry Global Docker image registry
15## @param global.imagePullSecrets Global Docker registry secret names as an array
16## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
22 ## - myRegistryKeySecretName
25 defaultStorageClass: ""
26 ## Security parameters
29 ## @param global.security.allowInsecureImages Allows skipping image verification
30 allowInsecureImages: false
31 ## Compatibility adaptations for Kubernetes platforms
34 ## Compatibility adaptations for Openshift
37 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
39 adaptSecurityContext: auto
41## @section Common parameters
44## @param kubeVersion Override Kubernetes version
47## @param nameOverride String to partially override common.names.fullname
50## @param fullnameOverride String to fully override common.names.fullname
53## @param commonLabels Labels to add to all deployed objects
56## @param commonAnnotations Annotations to add to all deployed objects
59## @param clusterDomain Kubernetes cluster domain name
61clusterDomain: cluster.local
62## @param extraDeploy Array of extra objects to deploy with the release
65## @param rbac.singleNamespace Restrict Argo to only deploy into a single namespace by apply Roles and RoleBindings instead of the Cluster equivalents, and start argo-cli with the --namespaced flag. Use it in clusters with strict access policy.
68 singleNamespace: false
69## @param createAggregateRoles Create Aggregated cluster roles
71createAggregateRoles: true
72## @section Argo Workflows Server configuration parameters
75## Argo Workflows server (based on the CLI) image
78 ## Chainguard Argo Workflow CLI image
79 ## @param server.image.registry [default: REGISTRY_NAME] server image registry
80 ## @param server.image.repository [default: REPOSITORY_NAME/argo-workflow-cli] server image repository
81 ## @skip server.image.tag server image tag (immutable tags are recommended)
82 ## @param server.image.digest server image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
83 ## @param server.image.pullPolicy server image pull policy
84 ## @param server.image.pullSecrets server image pull secrets
88 repository: chainguard-private/argo-workflow-cli-iamguarded
91 ## Specify a imagePullPolicy
92 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
94 pullPolicy: IfNotPresent
95 ## Optionally specify an array of imagePullSecrets.
96 ## Secrets must be manually created in the namespace.
97 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
100 ## - myRegistryKeySecretName
103 ## @param server.enabled Enable server deployment
106 ## @param server.replicaCount Number of server replicas to deploy
109 ## Configure extra options for server containers' liveness and readiness probes
110 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
111 ## @param server.livenessProbe.enabled Enable livenessProbe on server nodes
112 ## @param server.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
113 ## @param server.livenessProbe.periodSeconds Period seconds for livenessProbe
114 ## @param server.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
115 ## @param server.livenessProbe.failureThreshold Failure threshold for livenessProbe
116 ## @param server.livenessProbe.successThreshold Success threshold for livenessProbe
120 initialDelaySeconds: 10
125 ## @param server.readinessProbe.enabled Enable readinessProbe on server nodes
126 ## @param server.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
127 ## @param server.readinessProbe.periodSeconds Period seconds for readinessProbe
128 ## @param server.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
129 ## @param server.readinessProbe.failureThreshold Failure threshold for readinessProbe
130 ## @param server.readinessProbe.successThreshold Success threshold for readinessProbe
134 initialDelaySeconds: 10
139 ## @param server.startupProbe.enabled Enable startupProbe
140 ## @param server.startupProbe.path Path to check for startupProbe
141 ## @param server.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
142 ## @param server.startupProbe.periodSeconds Period seconds for startupProbe
143 ## @param server.startupProbe.timeoutSeconds Timeout seconds for startupProbe
144 ## @param server.startupProbe.failureThreshold Failure threshold for startupProbe
145 ## @param server.startupProbe.successThreshold Success threshold for startupProbe
150 initialDelaySeconds: 300
155 ## @param server.customLivenessProbe Server custom livenessProbe that overrides the default one
157 customLivenessProbe: {}
158 ## @param server.customReadinessProbe Server custom readinessProbe that overrides the default one
160 customReadinessProbe: {}
161 ## @param server.customStartupProbe Server custom startupProbe that overrides the default one
163 customStartupProbe: {}
164 ## server resource requests and limits
165 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
166 ## @param server.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if server.resources is set (server.resources is recommended for production).
168 resourcesPreset: "nano"
169 ## @param server.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
180 ## Configure Pods Security Context
181 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
182 ## @param server.podSecurityContext.enabled Enabled server pods' Security Context
183 ## @param server.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
184 ## @param server.podSecurityContext.sysctls Set kernel settings using the sysctl interface
185 ## @param server.podSecurityContext.supplementalGroups Set filesystem extra groups
186 ## @param server.podSecurityContext.fsGroup Set server pod's Security Context fsGroup
190 fsGroupChangePolicy: Always
192 supplementalGroups: []
194 ## Configure Container Security Context
195 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
196 ## @param server.containerSecurityContext.enabled Enabled server containers' Security Context
197 ## @param server.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
198 ## @param server.containerSecurityContext.runAsUser Set server containers' Security Context runAsUser
199 ## @param server.containerSecurityContext.runAsGroup Set server containers' Security Context runAsGroup
200 ## @param server.containerSecurityContext.runAsNonRoot Set server containers' Security Context runAsNonRoot
201 ## @param server.containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's Security Conte
202 ## @param server.containerSecurityContext.privileged Set server container's Security Context privileged
203 ## @param server.containerSecurityContext.allowPrivilegeEscalation Set server container's Security Context allowPrivilegeEscalation
204 ## @param server.containerSecurityContext.capabilities.drop List of capabilities to be dropped
205 ## @param server.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
207 containerSecurityContext:
214 allowPrivilegeEscalation: false
218 type: "RuntimeDefault"
219 readOnlyRootFilesystem: true
220 ## Create RBAC resources for the Argo workflows server
221 ## @param server.rbac.create Create RBAC resources for the Argo workflows server
225 ## @param server.extraArgs Extra arguments for the server command line
228 ## Enable authentication with the specified mode
229 ## Ref: https://argoproj.github.io/argo-workflows/argo-server-auth-mode/
232 ## @param server.auth.enabled Enable authentication
235 ## @param server.auth.mode Set authentication mode. Either `server`, `client` or `sso`.
238 ## SSO configuration when SSO is specified as a server auth mode.
239 ## All the values are required. SSO is activated by adding --auth-mode=sso to the server command line.
240 ## @param server.auth.sso.enabled Enable SSO configuration for the server auth mode
241 ## @param server.auth.sso.config.issuer Root URL for the OIDC identity provider
242 ## @param server.auth.sso.config.clientId.name Name of the secret containing the OIDC client ID
243 ## @param server.auth.sso.config.clientId.key Key in the secret to obtain the OIDC client ID
244 ## @param server.auth.sso.config.clientSecret.name Name of the secret containing the OIDC client secret
245 ## @param server.auth.sso.config.clientSecret.key Key in the secret to obtain the OIDC client secret
246 ## @param server.auth.sso.config.redirectUrl The OIDC redirect URL. Should be in the form <argo-root-url>/oauth2/callback.
247 ## @param server.auth.sso.rbac.enabled Create RBAC resources for SSO
248 ## @param server.auth.sso.rbac.secretWhitelist Restricts the secrets that the server can read
249 ## @param server.auth.sso.scopes Scopes requested from the SSO ID provider
253 ## The root URL of the OIDC identity provider.
255 ## issuer: "https://accounts.google.com"
259 ## Name of a secret and a key in it to retrieve the app OIDC client ID from.
264 ## Name of a secret and a key in it to retrieve the app OIDC client secret from.
269 ## The OIDC redirect URL. Should be in the form <argo-root-url>/oauth2/callback.
272 ## Create RBAC resources for SSO
276 ## When present, restricts secrets the server can read to a given list.
277 ## You can use it to restrict the server to only be able to access the
278 ## service account token secrets that are associated with service accounts
279 ## used for authorization.
282 ## Scopes requested from the SSO ID provider. The 'groups' scope requests
283 ## group membership information, which is usually used for authorization
287 ## @param server.clusterWorkflowTemplates.enabled Create ClusterRole and CRB for the controoler to access ClusterWorkflowTemplates
288 ## @param server.clusterWorkflowTemplates.enableEditing Give the server permissions to edit ClusterWorkflowTemplates
290 clusterWorkflowTemplates:
291 # Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates.
294 ## Pod disruption budget configuration
295 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
296 ## @param server.pdb.enabled Create Pod Disruption Budget for the server component
297 ## @param server.pdb.minAvailable Sets the min number of pods availables for the Pod Disruption Budget
298 ## @param server.pdb.maxUnavailable Sets the max number of pods unavailable for the Pod Disruption Budget
304 ## Run the argo server in "secure" mode.
305 ## Ref: https://argoproj.github.io/argo-workflows/tls/
306 ## @param server.secure Run Argo server in secure mode
309 ## Base URL for client resources
310 ## Ref: https://github.com/argoproj/argo-workflows/issues/716#issuecomment-433213190
311 ## @param server.baseHref Base href of the Argo Workflows deployment
314 ## Server container port
315 ## @param server.containerPorts.web argo Server container port
319 ## Server Service Account
320 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
321 ## @param server.serviceAccount.create Specifies whether a ServiceAccount should be created
322 ## @param server.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
323 ## @param server.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
324 ## @param server.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
329 automountServiceAccountToken: false
331 ## @param server.command Override default container command (useful when using custom images)
334 ## @param server.args Override default container args (useful when using custom images)
337 ## @param server.automountServiceAccountToken Mount Service Account token in pod
339 automountServiceAccountToken: true
340 ## @param server.hostAliases server pods host aliases
341 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
344 ## @param server.podLabels Extra labels for server pods
345 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
348 ## @param server.podAnnotations Annotations for server pods
349 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
352 ## @param server.podAffinityPreset Pod affinity preset. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
353 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
355 podAffinityPreset: ""
356 ## @param server.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
357 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
359 podAntiAffinityPreset: soft
360 ## Node server.affinity preset
361 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
364 ## @param server.nodeAffinityPreset.type Node affinity preset type. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
367 ## @param server.nodeAffinityPreset.key Node label key to match. Ignored if `server.affinity` is set
370 ## @param server.nodeAffinityPreset.values Node label values to match. Ignored if `server.affinity` is set
377 ## @param server.affinity Affinity for server pods assignment
378 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
379 ## NOTE: `server.podAffinityPreset`, `server.podAntiAffinityPreset`, and `server.nodeAffinityPreset` will be ignored when it's set
382 ## @param server.nodeSelector Node labels for server pods assignment
383 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
386 ## @param server.tolerations Tolerations for server pods assignment
387 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
390 ## @param server.updateStrategy.type server statefulset strategy type
391 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
395 ## Can be set to RollingUpdate or OnDelete
398 ## @param server.topologySpreadConstraints Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in
399 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
401 ## topologySpreadConstraints:
403 ## topologyKey: failure-domain.beta.kubernetes.io/zone
404 ## whenUnsatisfiable: DoNotSchedule
406 topologySpreadConstraints: []
407 ## @param server.schedulerName Alternate scheduler for the server deployment
408 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
411 ## @param server.priorityClassName server pods' priorityClassName
413 priorityClassName: ""
414 ## @param server.lifecycleHooks for the server container(s) to automate configuration before or after startup
417 ## @param server.extraEnvVars Array with extra environment variables to add to server nodes
424 ## @param server.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for server nodes
427 ## @param server.extraEnvVarsSecret Name of existing Secret containing extra env vars for server nodes
429 extraEnvVarsSecret: ""
430 ## @param server.extraVolumes Optionally specify extra list of additional volumes for the server pod(s)
433 ## @param server.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the server container(s)
435 extraVolumeMounts: []
436 ## @param server.sidecars Add additional sidecar containers to the server pod(s)
439 ## - name: your-image-name
441 ## imagePullPolicy: Always
444 ## containerPort: 1234
447 ## @param server.initContainers Add additional init containers to the server pod(s)
448 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
451 ## - name: your-image-name
453 ## imagePullPolicy: Always
454 ## command: ['sh', '-c', 'echo "hello world"']
457 ## Server service parameters
460 ## @param server.service.type server service type
463 ## @param server.service.ports.http server service HTTP port
467 ## Node ports to expose
468 ## @param server.service.nodePorts.http Node port for HTTP
469 ## NOTE: choose port between <30000-32767>
473 ## @param server.service.clusterIP server service Cluster IP
478 ## @param server.service.loadBalancerIP server service Load Balancer IP
479 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
482 ## @param server.service.loadBalancerSourceRanges server service Load Balancer sources
483 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
485 ## loadBalancerSourceRanges:
488 loadBalancerSourceRanges: []
489 ## @param server.service.externalTrafficPolicy server service external traffic policy
490 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
492 externalTrafficPolicy: Cluster
493 ## @param server.service.annotations Additional custom annotations for server service
496 ## @param server.service.extraPorts Extra port to expose on the server service
500 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
503 ## @param server.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
506 ## @param server.networkPolicy.allowExternal Don't require server label for connections
507 ## The Policy model to apply. When set to false, only pods with the correct
508 ## server label will have network access to the ports server is listening
509 ## on. When true, server will accept connections from any source
510 ## (with the correct destination port).
513 ## @param server.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
515 allowExternalEgress: true
516 ## @param server.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
518 kubeAPIServerPorts: [443, 6443, 8443]
519 ## @param server.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
529 ## - matchExpressions:
535 ## @param server.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
545 ## - matchExpressions:
552 ## @param server.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
553 ## @param server.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
555 ingressNSMatchLabels: {}
556 ingressNSPodMatchLabels: {}
557## @section Argo Workflows Controller configuration parameters
560## Argo Workflows Controller
563 ## Chainguard Argo Workflow Controller image
564 ## @param controller.image.registry [default: REGISTRY_NAME] controller image registry
565 ## @param controller.image.repository [default: REPOSITORY_NAME/argo-workflow-controller] controller image repository
566 ## @skip controller.image.tag controller image tag (immutable tags are recommended)
567 ## @param controller.image.digest controller image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
568 ## @param controller.image.pullPolicy controller image pull policy
569 ## @param controller.image.pullSecrets controller image pull secrets
573 repository: chainguard-private/argo-workflow-controller-iamguarded
576 ## Specify a imagePullPolicy
577 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
579 pullPolicy: IfNotPresent
580 ## Optionally specify an array of imagePullSecrets.
581 ## Secrets must be manually created in the namespace.
582 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
585 ## - myRegistryKeySecretName
588 ## @param controller.replicaCount Number of controller replicas to deploy
591 ## Configure extra options for controller containers' liveness and readiness probes
592 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
593 ## @param controller.livenessProbe.enabled Enable livenessProbe on controller nodes
594 ## @param controller.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
595 ## @param controller.livenessProbe.periodSeconds Period seconds for livenessProbe
596 ## @param controller.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
597 ## @param controller.livenessProbe.failureThreshold Failure threshold for livenessProbe
598 ## @param controller.livenessProbe.successThreshold Success threshold for livenessProbe
602 initialDelaySeconds: 90
607 ## @param controller.readinessProbe.enabled Enable readinessProbe on controller nodes
608 ## @param controller.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
609 ## @param controller.readinessProbe.periodSeconds Period seconds for readinessProbe
610 ## @param controller.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
611 ## @param controller.readinessProbe.failureThreshold Failure threshold for readinessProbe
612 ## @param controller.readinessProbe.successThreshold Success threshold for readinessProbe
616 initialDelaySeconds: 30
621 ## @param controller.startupProbe.enabled Enable startupProbe
622 ## @param controller.startupProbe.path Path to check for startupProbe
623 ## @param controller.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
624 ## @param controller.startupProbe.periodSeconds Period seconds for startupProbe
625 ## @param controller.startupProbe.timeoutSeconds Timeout seconds for startupProbe
626 ## @param controller.startupProbe.failureThreshold Failure threshold for startupProbe
627 ## @param controller.startupProbe.successThreshold Success threshold for startupProbe
632 initialDelaySeconds: 300
637 ## @param controller.customLivenessProbe Controller custom livenessProbe that overrides the default one
639 customLivenessProbe: {}
640 ## @param controller.customReadinessProbe Controller custom readinessProbe that overrides the default one
642 customReadinessProbe: {}
643 ## @param controller.customStartupProbe Controller custom startupProbe that overrides the default one
645 customStartupProbe: {}
646 ## controller resource requests and limits
647 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
648 ## @param controller.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if controller.resources is set (controller.resources is recommended for production).
650 resourcesPreset: "nano"
651 ## @param controller.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
662 ## Configure Pods Security Context
663 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
664 ## @param controller.podSecurityContext.enabled Enabled controller pods' Security Context
665 ## @param controller.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
666 ## @param controller.podSecurityContext.sysctls Set kernel settings using the sysctl interface
667 ## @param controller.podSecurityContext.supplementalGroups Set filesystem extra groups
668 ## @param controller.podSecurityContext.fsGroup Set controller pod's Security Context fsGroup
672 fsGroupChangePolicy: Always
674 supplementalGroups: []
676 ## Configure Container Security Context
677 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
678 ## @param controller.containerSecurityContext.enabled Enabled controller containers' Security Context
679 ## @param controller.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
680 ## @param controller.containerSecurityContext.runAsUser Set controller containers' Security Context runAsUser
681 ## @param controller.containerSecurityContext.runAsGroup Set controller containers' Security Context runAsGroup
682 ## @param controller.containerSecurityContext.runAsNonRoot Set controller containers' Security Context runAsNonRoot
683 ## @param controller.containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's Security Conte
684 ## @param controller.containerSecurityContext.privileged Set controller container's Security Context privileged
685 ## @param controller.containerSecurityContext.allowPrivilegeEscalation Set controller container's Security Context allowPrivilegeEscalation
686 ## @param controller.containerSecurityContext.capabilities.drop List of capabilities to be dropped
687 ## @param controller.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
689 containerSecurityContext:
696 allowPrivilegeEscalation: false
700 type: "RuntimeDefault"
701 readOnlyRootFilesystem: true
702 ## Server container port
703 ## @param controller.containerPorts.metrics Port to expose controller metrics
704 ## @param controller.containerPorts.telemetry Port to expose controller telemetry
709 ## Create RBAC resources for the Argo workflows controller
710 ## @param controller.rbac.create Create RBAC resources for the Argo workflows controller
714 ## Use an existing configmap instead of creating a configmap with the specified parameters
715 ## @param controller.existingConfigMap
717 existingConfigMap: ""
718 ## @param controller.extraArgs Extra arguments for the controller command line
722 ## @param controller.persistence.archive.enabled Save completed workflows to an SQL database.
726 ## Controller configmap configuration content. Requires controller.existingConfigmap to be empty.
727 ## @param controller.config [object] Controller configmap configuration content
730 {{- if .Values.controller.instanceID.enabled }}
731 {{- if .Values.controller.instanceID.useReleaseName }}
732 instanceID: {{ .Release.Name }}
734 instanceID: {{ .Values.controller.instanceID.explicitID }}
737 ## How many workflows can be running at the same time
740 ## Maximun number of workflows running in a namespace
742 namespaceParallelism:
743 {{- if or .Values.executor.resources .Values.executor.extraEnvVars .Values.executor.containerSecurityContext }}
745 {{- if .Values.executor.resources }}
746 resources: {{- include "common.tplvalues.render" (dict "value" .Values.executor.resources "context" $) | nindent 4 }}
747 {{- else if ne .Values.executor.resourcesPreset "none" }}
748 resources: {{- include "common.resources.preset" (dict "type" .Values.executor.resourcesPreset) | nindent 4 }}
750 {{- if .Values.executor.extraEnvVars }}
751 env: {{- include "common.tplvalues.render" (dict "value" .Values.executor.extraEnvVars "context" $) | nindent 4 }}
753 {{- if .Values.executor.containerSecurityContext }}
754 securityContext: {{- omit .Values.executor.containerSecurityContext "enabled" | toYaml | nindent 4 }}
757 ## Uncomment to enable Artofact repository with the provided configuration
758 ## artifactRepository:
759 ## archiveLogs: false
762 {{- if .Values.controller.metrics.enabled }}
763 metricsConfig: {{- include "common.tplvalues.render" (dict "value" .Values.controller.metrics "context" $) | nindent 2 }}
765 {{- if .Values.controller.telemetry.enabled }}
766 telemetryConfig: {{- include "common.tplvalues.render" (dict "value" .Values.controller.telemetry "context" $) | nindent 2 }}
768 {{- if (include "argo-workflows.controller.persistence.enabled" .) }}
773 nodeStatusOffLoad: false
774 archive: {{ include "common.tplvalues.render" (dict "value" .Values.controller.persistence.archive.enabled "context" $) }}
775 {{- if or .Values.postgresql.enabled (and .Values.externalDatabase.enabled (eq .Values.externalDatabase.type "postgresql")) }}
777 {{- else if or .Values.mysql.enabled (and .Values.externalDatabase.enabled (eq .Values.externalDatabase.type "mysql")) }}
780 host: {{ include "argo-workflows.controller.database.host" . }}
781 port: {{ include "argo-workflows.controller.database.port" . }}
782 database: {{ include "argo-workflows.controller.database" . }}
783 tableName: argo_workflows
784 ## the database secrets must be in the same namespace of the controller
787 name: {{ include "argo-workflows.controller.database.username.secret" . }}
790 name: {{ include "argo-workflows.controller.database.password.secret" . }}
791 key: {{ include "argo-workflows.controller.database.password.secret.key" . }}
793 {{- if .Values.controller.workflowDefaults }}
794 workflowDefaults: {{- include "common.tplvalues.render" (dict "value" .Values.controller.workflowDefaults "context" $) | nindent 2 }}
796 {{- if and .Values.server.auth.enabled .Values.server.auth.sso.enabled }}
797 sso: {{- include "common.tplvalues.render" (dict "value" .Values.server.auth.sso.config "context" $) | nindent 2 }}
799 ## Uncomment to set workflowRestrictions
800 ## Ref: https://argoproj.github.io/argo-workflows/workflow-restrictions/
801 ## workflowRestrictions: {}
802 ## Uncomment to set links
803 ## Ref: https://argoproj.github.io/argo-workflows/links/
806 ## Configure the controller to accept only submissions with a matching instanceID attribute
807 ## @param controller.instanceID.enabled Enable submission filtering based on instanceID attribute. Requires to set instanceID.useReleaseName or instanceID.explicitID
808 ## @param controller.instanceID.useReleaseName Use the release name to filter submissions
809 ## @param controller.instanceID.explicitID Filter submissions based on an explicit instance ID
813 ## NOTE: If `instanceID.enabled` is set to `true` then either `instanceID.userReleaseName` or `instanceID.explicitID` must be defined.
815 useReleaseName: false
817 ## @param controller.clusterWorkflowTemplates.enabled Whether to create a ClusterRole and Cluster Role Binding to access ClusterWokflowTemplates resources
819 clusterWorkflowTemplates:
821 ## Metrics configuration for the controller
822 ## @param controller.metrics.enabled Enable controller metrics exporter
823 ## @param controller.metrics.path Path to expose controller metrics
824 ## @param controller.metrics.serviceMonitor.enabled Enable prometheus service monitor configuration
831 ## Telemetry configuration for the controller
832 ## @param controller.telemetry.enabled Enable telemetry for the controller
833 ## @param controller.telemetry.path Path to expose telemetry information
838 ## Number of workflow workers to deploy
839 ## @param controller.workflowWorkers Number of workflow workers to deploy
842 ## Namespaces allowed to run workflows
843 ## @param controller.workflowNamespaces Namespaces allowed to run workflows
847 ## Default Workflow Values
848 ## Ref: https://argoproj.github.io/argo-workflows/default-workflow-specs/#setting-default-workflow-values
849 ## @param controller.workflowDefaults Default Workflow Values
852 ## Logging level for the controller
853 ## @param controller.logging.level Level for the controller logging
854 ## @param controller.logging.globalLevel Global logging level for the controller
859 ## Pod disruption budget configuration
860 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
861 ## @param controller.pdb.enabled Create Pod Disruption Budget for the controller component
862 ## @param controller.pdb.minAvailable Sets the min number of pods availables for the Pod Disruption Budget
863 ## @param controller.pdb.maxUnavailable Sets the max number of pods unavailable for the Pod Disruption Budget
869 ## Controller Service Account
870 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
871 ## @param controller.serviceAccount.create Specifies whether a ServiceAccount should be created
872 ## @param controller.serviceAccount.name Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
873 ## @param controller.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
874 ## @param controller.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
879 automountServiceAccountToken: false
881 ## @param controller.command Override default container command (useful when using custom images)
884 ## @param controller.args Override default container args (useful when using custom images)
887 ## @param controller.automountServiceAccountToken Mount Service Account token in pod
889 automountServiceAccountToken: true
890 ## @param controller.hostAliases controller pods host aliases
891 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
894 ## @param controller.podLabels Extra labels for controller pods
895 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
898 ## @param controller.podAnnotations Annotations for controller pods
899 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
902 ## @param controller.podAffinityPreset Pod affinity preset. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard`
903 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
905 podAffinityPreset: ""
906 ## @param controller.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard`
907 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
909 podAntiAffinityPreset: soft
910 ## Node controller.affinity preset
911 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
914 ## @param controller.nodeAffinityPreset.type Node affinity preset type. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard`
917 ## @param controller.nodeAffinityPreset.key Node label key to match. Ignored if `controller.affinity` is set
920 ## @param controller.nodeAffinityPreset.values Node label values to match. Ignored if `controller.affinity` is set
927 ## @param controller.affinity Affinity for controller pods assignment
928 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
929 ## NOTE: `controller.podAffinityPreset`, `controller.podAntiAffinityPreset`, and `controller.nodeAffinityPreset` will be ignored when it's set
932 ## @param controller.nodeSelector Node labels for controller pods assignment
933 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
936 ## @param controller.tolerations Tolerations for controller pods assignment
937 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
940 ## @param controller.updateStrategy.type controller statefulset strategy type
941 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
945 ## Can be set to RollingUpdate or OnDelete
948 ## @param controller.topologySpreadConstraints Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in
949 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
951 ## topologySpreadConstraints:
953 ## topologyKey: failure-domain.beta.kubernetes.io/zone
954 ## whenUnsatisfiable: DoNotSchedule
956 topologySpreadConstraints: []
957 ## @param controller.schedulerName Alternate scheduler for the server controller
958 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
961 ## @param controller.priorityClassName controller pods' priorityClassName
963 priorityClassName: ""
964 ## @param controller.lifecycleHooks for the controller container(s) to automate configuration before or after startup
967 ## @param controller.extraEnvVars Array with extra environment variables to add to controller nodes
974 ## @param controller.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for controller nodes
977 ## @param controller.extraEnvVarsSecret Name of existing Secret containing extra env vars for controller nodes
979 extraEnvVarsSecret: ""
980 ## @param controller.extraVolumes Optionally specify extra list of additional volumes for the controller pod(s)
983 ## @param controller.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the controller container(s)
985 extraVolumeMounts: []
986 ## @param controller.sidecars Add additional sidecar containers to the controller pod(s)
989 ## - name: your-image-name
991 ## imagePullPolicy: Always
994 ## containerPort: 1234
997 ## @param controller.initContainers Add additional init containers to the controller pod(s)
998 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1001 ## - name: your-image-name
1002 ## image: your-image
1003 ## imagePullPolicy: Always
1004 ## command: ['sh', '-c', 'echo "hello world"']
1007 ## Controller service parameters
1010 ## @param controller.service.type controller service type
1013 ## @param controller.service.ports.metrics Metrics port for the controller
1014 ## @param controller.service.ports.telemetry Telemetry port for the controller
1019 ## Node ports to expose
1020 ## @param controller.service.nodePorts.metrics Node port for HTTP
1021 ## @param controller.service.nodePorts.telemetry Node port for HTTPS
1022 ## NOTE: choose port between <30000-32767>
1027 ## @param controller.service.clusterIP controller service Cluster IP
1032 ## @param controller.service.loadBalancerIP controller service Load Balancer IP
1033 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1036 ## @param controller.service.loadBalancerSourceRanges controller service Load Balancer sources
1037 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1039 ## loadBalancerSourceRanges:
1042 loadBalancerSourceRanges: []
1043 ## @param controller.service.externalTrafficPolicy controller service external traffic policy
1044 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1046 externalTrafficPolicy: Cluster
1047 ## @param controller.service.annotations Additional custom annotations for controller service
1050 ## @param controller.service.extraPorts Extra port to expose on the controller service
1054 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1057 ## @param controller.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1060 ## @param controller.networkPolicy.allowExternal Don't require server label for connections
1061 ## The Policy model to apply. When set to false, only pods with the correct
1062 ## server label will have network access to the ports server is listening
1063 ## on. When true, server will accept connections from any source
1064 ## (with the correct destination port).
1067 ## @param controller.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1069 allowExternalEgress: true
1070 ## @param controller.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
1072 kubeAPIServerPorts: [443, 6443, 8443]
1073 ## @param controller.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1083 ## - matchExpressions:
1089 ## @param controller.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
1099 ## - matchExpressions:
1106 ## @param controller.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1107 ## @param controller.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1109 ingressNSMatchLabels: {}
1110 ingressNSPodMatchLabels: {}
1111## @section Executor configuration section
1114 ## Chainguard Argo Workflow Executor image
1115 ## @param executor.image.registry [default: REGISTRY_NAME] executor image registry
1116 ## @param executor.image.repository [default: REPOSITORY_NAME/argo-workflow-exec] executor image repository
1117 ## @skip executor.image.tag executor image tag (immutable tags are recommended)
1118 ## @param executor.image.digest executor image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1119 ## @param executor.image.pullPolicy executor image pull policy
1120 ## @param executor.image.pullSecrets executor image pull secrets
1124 repository: chainguard-private/argo-workflow-exec-iamguarded
1127 ## Specify a imagePullPolicy
1128 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1130 pullPolicy: IfNotPresent
1131 ## Optionally specify an array of imagePullSecrets.
1132 ## Secrets must be manually created in the namespace.
1133 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1136 ## - myRegistryKeySecretName
1139 ## Init container's resource requests and limits
1140 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1141 ## @param executor.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if executor.resources is set (executor.resources is recommended for production).
1143 resourcesPreset: "nano"
1144 ## @param executor.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1155 ## @param executor.extraEnvVars Array with extra environment variables to add to server nodes
1162 ## Configure Container Security Context
1163 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1164 ## @param executor.containerSecurityContext.enabled Enabled executor containers' Security Context
1165 ## @param executor.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1166 ## @param executor.containerSecurityContext.runAsUser Set executor containers' Security Context runAsUser
1167 ## @param executor.containerSecurityContext.runAsGroup Set executor containers' Security Context runAsGroup
1168 ## @param executor.containerSecurityContext.runAsNonRoot Set executor containers' Security Context runAsNonRoot
1169 ## @param executor.containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's Security Conte
1170 ## @param executor.containerSecurityContext.privileged Set executor container's Security Context privileged
1171 ## @param executor.containerSecurityContext.allowPrivilegeEscalation Set executor container's Security Context allowPrivilegeEscalation
1172 ## @param executor.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1173 ## @param executor.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1175 containerSecurityContext:
1182 allowPrivilegeEscalation: false
1186 type: "RuntimeDefault"
1187 readOnlyRootFilesystem: true
1188## @section Traffic Exposure Parameters
1191## Server ingress parameters
1192## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
1195 ## @param ingress.enabled Enable ingress record generation for server
1198 ## @param ingress.pathType Ingress path type
1200 pathType: ImplementationSpecific
1201 ## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
1204 ## @param ingress.hostname Default host for the ingress record
1206 hostname: server.local
1207 ## @param ingress.path Default path for the ingress record
1208 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
1211 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1212 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster.
1213 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1215 ingressClassName: ""
1216 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1217 ## For a full list of possible ingress annotations, please see
1218 ## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
1219 ## Use this parameter to set the required annotations for cert-manager, see
1220 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1224 ## kubernetes.io/ingress.class: nginx
1225 ## cert-manager.io/cluster-issuer: cluster-issuer-name
1228 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
1229 ## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
1231 ## - Use the `ingress.secrets` parameter to create this TLS secret
1232 ## - Rely on cert-manager to create it by setting the corresponding annotations
1233 ## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
1236 ## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
1239 ## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
1242 ## - name: server.local
1246 ## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
1251 ## serviceName: ssl-redirect
1252 ## servicePort: use-annotation
1255 ## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
1256 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1261 ## secretName: server.local-tls
1264 ## @param ingress.secrets Custom TLS certificates as secrets
1265 ## NOTE: 'key' and 'certificate' are expected in PEM format
1266 ## NOTE: 'name' should line up with a 'secretName' set further up
1267 ## If it is not set and you're using cert-manager, this is unneeded, as it will create a secret for you with valid certificates
1268 ## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
1269 ## It is also possible to create and manage the certificates outside of this helm chart
1270 ## Please see README.md for more information
1273 ## - name: server.local-tls
1275 ## -----BEGIN RSA PRIVATE KEY-----
1277 ## -----END RSA PRIVATE KEY-----
1279 ## -----BEGIN CERTIFICATE-----
1281 ## -----END CERTIFICATE-----
1284 ## @param ingress.extraRules Additional rules to be covered with this ingress record
1285 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
1288 ## - host: server.local
1298## @section Workflows configuration
1301 ## Service account configuration for workflows
1302 ## @param workflows.serviceAccount.create Whether to create a service account to run workflows
1303 ## @param workflows.serviceAccount.name Service account name to run workflows
1304 ## @param workflows.serviceAccount.automountServiceAccountToken Automount service account token for the workflows service account
1305 ## @param workflows.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1310 automountServiceAccountToken: false
1312 ## Create RBAC resources to run workflows.
1313 ## A Role and Role Bindding are created per namespace in controller.workflowNamespaces
1314 ## @param workflows.rbac.create Whether to create RBAC resource to run workflows
1318## @section PostgreSQL subchart
1321## Postgresql subchart configuration
1322## @param postgresql.enabled Enable PostgreSQL subchart and controller persistence using PostgreSQL
1323## @param postgresql.service.ports.postgresql PostgreSQL port
1324## @param postgresql.auth.username PostgreSQL username
1325## @param postgresql.auth.database PortgreSQL database name
1326## @param postgresql.auth.password PortgreSQL database password
1332 repository: chainguard-private/postgres-iamguarded
1340 database: ig_argo_workflows
1343 ## PostgreSQL Primary resource requests and limits
1344 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1345 ## @param postgresql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
1347 resourcesPreset: "nano"
1348 ## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1359## @section MySQL subchart
1362## Mysql subchart configuration
1363## @param mysql.enabled Enable MySQL subchart and controller persistence using MySQL
1364## @param mysql.service.ports.mysql MySQL port
1365## @param mysql.auth.username MySQL username
1366## @param mysql.auth.database MySQL database name
1367## @param mysql.auth.password MySQL database password
1373 repository: chainguard-private/mysql-iamguarded
1381 database: ig_argo_workflows
1384 ## MySQL primary container's resource requests and limits
1385 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1386 ## We usually recommend not to specify default resources and to leave this as a conscious
1387 ## choice for the user. This also increases chances charts run on environments with little
1388 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
1389 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1390 ## @param mysql.primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
1392 resourcesPreset: "small"
1393 ## @param mysql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1404## @section External Database configuration
1407## External Database Configuration
1408## @param externalDatabase.enabled Enable using externaldatabase and the controller to use persistence with it
1409## @param externalDatabase.host External Database server host
1410## @param externalDatabase.port External Database server port
1411## @param externalDatabase.username External Database username
1412## @param externalDatabase.password External Database user password
1413## @param externalDatabase.database External Database database name
1414## @param externalDatabase.existingSecret The name of an existing secret with database credentials
1415## @param externalDatabase.type Either postgresql or mysql
1419 ## Either "postgresql" or "mysql"
1424 username: ig_workflows
1426 database: iamguarded_workflows
1427 ## NOTE: Must contain key `database-password`
1428 ## NOTE: When it's set, the `externalDatabase.password` parameter is ignored