DirectorySecurity AdvisoriesPricing
Sign in
Directory
argo-workflows logoHELM

argo-workflows

Helm chart
iamguarded
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# This file has been modified by Chainguard, Inc.
2
#
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
6
#
7
# Copyright Broadcom, Inc. All Rights Reserved.
8
# SPDX-License-Identifier: APACHE-2.0
9
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.useImageTags Pull every image by tag and ignore all image digests, including digests set in values. Use this when your registry mirror does not have the chart's default image digests.
16
## @param global.imagePullSecrets Global Docker registry secret names as an array
17
## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
18
##
19
global:
20
imageRegistry: ""
21
useImageTags: false
22
## E.g.
23
## imagePullSecrets:
24
## - myRegistryKeySecretName
25
##
26
imagePullSecrets: []
27
defaultStorageClass: ""
28
## Security parameters
29
##
30
security:
31
## @param global.security.allowInsecureImages Allows skipping image verification
32
allowInsecureImages: false
33
## Compatibility adaptations for Kubernetes platforms
34
##
35
compatibility:
36
## Compatibility adaptations for Openshift
37
##
38
openshift:
39
## @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)
40
##
41
adaptSecurityContext: auto
42
org: ""
43
## @section Common parameters
44
##
45
46
## @param kubeVersion Override Kubernetes version
47
##
48
kubeVersion: ""
49
## @param nameOverride String to partially override common.names.fullname
50
##
51
nameOverride: ""
52
## @param fullnameOverride String to fully override common.names.fullname
53
##
54
fullnameOverride: ""
55
## @param commonLabels Labels to add to all deployed objects
56
##
57
commonLabels: {}
58
## @param commonAnnotations Annotations to add to all deployed objects
59
##
60
commonAnnotations: {}
61
## @param clusterDomain Kubernetes cluster domain name
62
##
63
clusterDomain: cluster.local
64
## @param extraDeploy Array of extra objects to deploy with the release
65
##
66
extraDeploy: []
67
## @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
##
69
rbac:
70
singleNamespace: false
71
## @param createAggregateRoles Create Aggregated cluster roles
72
##
73
createAggregateRoles: true
74
## @section Argo Workflows Server configuration parameters
75
##
76
77
## Argo Workflows server (based on the CLI) image
78
##
79
server:
80
## Chainguard Argo Workflow CLI image
81
## @param server.image.registry [default: REGISTRY_NAME] server image registry
82
## @param server.image.repository [default: REPOSITORY_NAME/argo-workflow-cli] server image repository
83
## @skip server.image.tag server image tag (immutable tags are recommended)
84
## @param server.image.digest server image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
85
## @param server.image.pullPolicy server image pull policy
86
## @param server.image.pullSecrets server image pull secrets
87
##
88
image:
89
registry: cgr.dev
90
repository: chainguard-private/argo-workflow-cli-iamguarded
91
tag: 4.1.6
92
digest: ""
93
## Specify a imagePullPolicy
94
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
95
##
96
pullPolicy: IfNotPresent
97
## Optionally specify an array of imagePullSecrets.
98
## Secrets must be manually created in the namespace.
99
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
100
## e.g:
101
## pullSecrets:
102
## - myRegistryKeySecretName
103
##
104
pullSecrets: []
105
## @param server.enabled Enable server deployment
106
##
107
enabled: true
108
## @param server.replicaCount Number of server replicas to deploy
109
##
110
replicaCount: 1
111
## Configure extra options for server containers' liveness and readiness probes
112
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
113
## @param server.livenessProbe.enabled Enable livenessProbe on server nodes
114
## @param server.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
115
## @param server.livenessProbe.periodSeconds Period seconds for livenessProbe
116
## @param server.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
117
## @param server.livenessProbe.failureThreshold Failure threshold for livenessProbe
118
## @param server.livenessProbe.successThreshold Success threshold for livenessProbe
119
##
120
livenessProbe:
121
enabled: true
122
initialDelaySeconds: 10
123
periodSeconds: 20
124
timeoutSeconds: 1
125
failureThreshold: 3
126
successThreshold: 1
127
## @param server.readinessProbe.enabled Enable readinessProbe on server nodes
128
## @param server.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
129
## @param server.readinessProbe.periodSeconds Period seconds for readinessProbe
130
## @param server.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
131
## @param server.readinessProbe.failureThreshold Failure threshold for readinessProbe
132
## @param server.readinessProbe.successThreshold Success threshold for readinessProbe
133
##
134
readinessProbe:
135
enabled: true
136
initialDelaySeconds: 10
137
periodSeconds: 20
138
timeoutSeconds: 1
139
failureThreshold: 3
140
successThreshold: 1
141
## @param server.startupProbe.enabled Enable startupProbe
142
## @param server.startupProbe.path Path to check for startupProbe
143
## @param server.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
144
## @param server.startupProbe.periodSeconds Period seconds for startupProbe
145
## @param server.startupProbe.timeoutSeconds Timeout seconds for startupProbe
146
## @param server.startupProbe.failureThreshold Failure threshold for startupProbe
147
## @param server.startupProbe.successThreshold Success threshold for startupProbe
148
##
149
startupProbe:
150
enabled: false
151
path: /
152
initialDelaySeconds: 300
153
periodSeconds: 10
154
timeoutSeconds: 5
155
failureThreshold: 6
156
successThreshold: 1
157
## @param server.customLivenessProbe Server custom livenessProbe that overrides the default one
158
##
159
customLivenessProbe: {}
160
## @param server.customReadinessProbe Server custom readinessProbe that overrides the default one
161
##
162
customReadinessProbe: {}
163
## @param server.customStartupProbe Server custom startupProbe that overrides the default one
164
##
165
customStartupProbe: {}
166
## server resource requests and limits
167
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
168
## @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).
169
##
170
resourcesPreset: "nano"
171
## @param server.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
172
## Example:
173
## resources:
174
## requests:
175
## cpu: 2
176
## memory: 512Mi
177
## limits:
178
## cpu: 3
179
## memory: 1024Mi
180
##
181
resources: {}
182
## Configure Pods Security Context
183
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
184
## @param server.podSecurityContext.enabled Enabled server pods' Security Context
185
## @param server.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
186
## @param server.podSecurityContext.sysctls Set kernel settings using the sysctl interface
187
## @param server.podSecurityContext.supplementalGroups Set filesystem extra groups
188
## @param server.podSecurityContext.fsGroup Set server pod's Security Context fsGroup
189
##
190
podSecurityContext:
191
enabled: true
192
fsGroupChangePolicy: Always
193
sysctls: []
194
supplementalGroups: []
195
fsGroup: 1001
196
## Configure Container Security Context
197
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
198
## @param server.containerSecurityContext.enabled Enabled server containers' Security Context
199
## @param server.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
200
## @param server.containerSecurityContext.runAsUser Set server containers' Security Context runAsUser
201
## @param server.containerSecurityContext.runAsGroup Set server containers' Security Context runAsGroup
202
## @param server.containerSecurityContext.runAsNonRoot Set server containers' Security Context runAsNonRoot
203
## @param server.containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's Security Conte
204
## @param server.containerSecurityContext.privileged Set server container's Security Context privileged
205
## @param server.containerSecurityContext.allowPrivilegeEscalation Set server container's Security Context allowPrivilegeEscalation
206
## @param server.containerSecurityContext.capabilities.drop List of capabilities to be dropped
207
## @param server.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
208
##
209
containerSecurityContext:
210
enabled: true
211
seLinuxOptions: {}
212
runAsUser: 1001
213
runAsGroup: 1001
214
runAsNonRoot: true
215
privileged: false
216
allowPrivilegeEscalation: false
217
capabilities:
218
drop: ["ALL"]
219
seccompProfile:
220
type: "RuntimeDefault"
221
readOnlyRootFilesystem: true
222
## Create RBAC resources for the Argo workflows server
223
## @param server.rbac.create Create RBAC resources for the Argo workflows server
224
##
225
rbac:
226
create: true
227
## @param server.extraArgs Extra arguments for the server command line
228
##
229
extraArgs: ""
230
## Enable authentication with the specified mode
231
## Ref: https://argoproj.github.io/argo-workflows/argo-server-auth-mode/
232
##
233
auth:
234
## @param server.auth.enabled Enable authentication
235
##
236
enabled: true
237
## @param server.auth.mode Set authentication mode. Either `server`, `client` or `sso`.
238
##
239
mode: client
240
## SSO configuration when SSO is specified as a server auth mode.
241
## All the values are required. SSO is activated by adding --auth-mode=sso to the server command line.
242
## @param server.auth.sso.enabled Enable SSO configuration for the server auth mode
243
## @param server.auth.sso.config.issuer Root URL for the OIDC identity provider
244
## @param server.auth.sso.config.clientId.name Name of the secret containing the OIDC client ID
245
## @param server.auth.sso.config.clientId.key Key in the secret to obtain the OIDC client ID
246
## @param server.auth.sso.config.clientSecret.name Name of the secret containing the OIDC client secret
247
## @param server.auth.sso.config.clientSecret.key Key in the secret to obtain the OIDC client secret
248
## @param server.auth.sso.config.redirectUrl The OIDC redirect URL. Should be in the form <argo-root-url>/oauth2/callback.
249
## @param server.auth.sso.rbac.enabled Create RBAC resources for SSO
250
## @param server.auth.sso.rbac.secretWhitelist Restricts the secrets that the server can read
251
## @param server.auth.sso.scopes Scopes requested from the SSO ID provider
252
##
253
sso:
254
enabled: false
255
## The root URL of the OIDC identity provider.
256
## E.g.
257
## issuer: "https://accounts.google.com"
258
##
259
config:
260
issuer: ""
261
## Name of a secret and a key in it to retrieve the app OIDC client ID from.
262
##
263
clientId:
264
name: ""
265
key: ""
266
## Name of a secret and a key in it to retrieve the app OIDC client secret from.
267
##
268
clientSecret:
269
name: ""
270
key: ""
271
## The OIDC redirect URL. Should be in the form <argo-root-url>/oauth2/callback.
272
##
273
redirectUrl: ""
274
## Create RBAC resources for SSO
275
##
276
rbac:
277
enabled: true
278
## When present, restricts secrets the server can read to a given list.
279
## You can use it to restrict the server to only be able to access the
280
## service account token secrets that are associated with service accounts
281
## used for authorization.
282
##
283
secretWhitelist: []
284
## Scopes requested from the SSO ID provider. The 'groups' scope requests
285
## group membership information, which is usually used for authorization
286
## decisions.
287
##
288
scopes: []
289
## @param server.clusterWorkflowTemplates.enabled Create ClusterRole and CRB for the controoler to access ClusterWorkflowTemplates
290
## @param server.clusterWorkflowTemplates.enableEditing Give the server permissions to edit ClusterWorkflowTemplates
291
##
292
clusterWorkflowTemplates:
293
# Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates.
294
enabled: true
295
enableEditing: true
296
## Pod disruption budget configuration
297
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
298
## @param server.pdb.enabled Create Pod Disruption Budget for the server component
299
## @param server.pdb.minAvailable Sets the min number of pods availables for the Pod Disruption Budget
300
## @param server.pdb.maxUnavailable Sets the max number of pods unavailable for the Pod Disruption Budget
301
##
302
pdb:
303
enabled: true
304
minAvailable: ""
305
maxUnavailable: ""
306
## Run the argo server in "secure" mode.
307
## Ref: https://argoproj.github.io/argo-workflows/tls/
308
## @param server.secure Run Argo server in secure mode
309
##
310
secure: false
311
## Base URL for client resources
312
## Ref: https://github.com/argoproj/argo-workflows/issues/716#issuecomment-433213190
313
## @param server.baseHref Base href of the Argo Workflows deployment
314
##
315
baseHref: /
316
## Server container port
317
## @param server.containerPorts.web argo Server container port
318
##
319
containerPorts:
320
web: 2746
321
## Server Service Account
322
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
323
## @param server.serviceAccount.create Specifies whether a ServiceAccount should be created
324
## @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.
325
## @param server.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
326
## @param server.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
327
##
328
serviceAccount:
329
create: true
330
name: ""
331
automountServiceAccountToken: false
332
annotations: {}
333
## @param server.command Override default container command (useful when using custom images)
334
##
335
command: []
336
## @param server.args Override default container args (useful when using custom images)
337
##
338
args: []
339
## @param server.automountServiceAccountToken Mount Service Account token in pod
340
##
341
automountServiceAccountToken: true
342
## @param server.hostAliases server pods host aliases
343
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
344
##
345
hostAliases: []
346
## @param server.podLabels Extra labels for server pods
347
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
348
##
349
podLabels: {}
350
## @param server.podAnnotations Annotations for server pods
351
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
352
##
353
podAnnotations: {}
354
## @param server.podAffinityPreset Pod affinity preset. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
355
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
356
##
357
podAffinityPreset: ""
358
## @param server.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
359
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
360
##
361
podAntiAffinityPreset: soft
362
## Node server.affinity preset
363
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
364
##
365
nodeAffinityPreset:
366
## @param server.nodeAffinityPreset.type Node affinity preset type. Ignored if `server.affinity` is set. Allowed values: `soft` or `hard`
367
##
368
type: ""
369
## @param server.nodeAffinityPreset.key Node label key to match. Ignored if `server.affinity` is set
370
##
371
key: ""
372
## @param server.nodeAffinityPreset.values Node label values to match. Ignored if `server.affinity` is set
373
## E.g.
374
## values:
375
## - e2e-az1
376
## - e2e-az2
377
##
378
values: []
379
## @param server.affinity Affinity for server pods assignment
380
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
381
## NOTE: `server.podAffinityPreset`, `server.podAntiAffinityPreset`, and `server.nodeAffinityPreset` will be ignored when it's set
382
##
383
affinity: {}
384
## @param server.nodeSelector Node labels for server pods assignment
385
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
386
##
387
nodeSelector: {}
388
## @param server.tolerations Tolerations for server pods assignment
389
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
390
##
391
tolerations: []
392
## @param server.updateStrategy.type server statefulset strategy type
393
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
394
##
395
updateStrategy:
396
## StrategyType
397
## Can be set to RollingUpdate or OnDelete
398
##
399
type: RollingUpdate
400
## @param server.topologySpreadConstraints Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in
401
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
402
##
403
## topologySpreadConstraints:
404
## - maxSkew: 1
405
## topologyKey: failure-domain.beta.kubernetes.io/zone
406
## whenUnsatisfiable: DoNotSchedule
407
##
408
topologySpreadConstraints: []
409
## @param server.schedulerName Alternate scheduler for the server deployment
410
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
411
##
412
schedulerName: ""
413
## @param server.priorityClassName server pods' priorityClassName
414
##
415
priorityClassName: ""
416
## @param server.lifecycleHooks for the server container(s) to automate configuration before or after startup
417
##
418
lifecycleHooks: {}
419
## @param server.extraEnvVars Array with extra environment variables to add to server nodes
420
## e.g:
421
## extraEnvVars:
422
## - name: FOO
423
## value: "bar"
424
##
425
extraEnvVars: []
426
## @param server.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for server nodes
427
##
428
extraEnvVarsCM: ""
429
## @param server.extraEnvVarsSecret Name of existing Secret containing extra env vars for server nodes
430
##
431
extraEnvVarsSecret: ""
432
## @param server.extraVolumes Optionally specify extra list of additional volumes for the server pod(s)
433
##
434
extraVolumes: []
435
## @param server.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the server container(s)
436
##
437
extraVolumeMounts: []
438
## @param server.sidecars Add additional sidecar containers to the server pod(s)
439
## e.g:
440
## sidecars:
441
## - name: your-image-name
442
## image: your-image
443
## imagePullPolicy: Always
444
## ports:
445
## - name: portname
446
## containerPort: 1234
447
##
448
sidecars: []
449
## @param server.initContainers Add additional init containers to the server pod(s)
450
## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
451
## e.g:
452
## initContainers:
453
## - name: your-image-name
454
## image: your-image
455
## imagePullPolicy: Always
456
## command: ['sh', '-c', 'echo "hello world"']
457
##
458
initContainers: []
459
## Server service parameters
460
##
461
service:
462
## @param server.service.type server service type
463
##
464
type: ClusterIP
465
## @param server.service.ports.http server service HTTP port
466
##
467
ports:
468
http: 80
469
## Node ports to expose
470
## @param server.service.nodePorts.http Node port for HTTP
471
## NOTE: choose port between <30000-32767>
472
##
473
nodePorts:
474
http: ""
475
## @param server.service.clusterIP server service Cluster IP
476
## e.g.:
477
## clusterIP: None
478
##
479
clusterIP: ""
480
## @param server.service.loadBalancerIP server service Load Balancer IP
481
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
482
##
483
loadBalancerIP: ""
484
## @param server.service.loadBalancerSourceRanges server service Load Balancer sources
485
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
486
## e.g:
487
## loadBalancerSourceRanges:
488
## - 10.10.10.0/24
489
##
490
loadBalancerSourceRanges: []
491
## @param server.service.externalTrafficPolicy server service external traffic policy
492
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
493
##
494
externalTrafficPolicy: Cluster
495
## @param server.service.annotations Additional custom annotations for server service
496
##
497
annotations: {}
498
## @param server.service.extraPorts Extra port to expose on the server service
499
##
500
extraPorts: []
501
## Network Policies
502
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
503
##
504
networkPolicy:
505
## @param server.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
506
##
507
enabled: true
508
## @param server.networkPolicy.allowExternal Don't require server label for connections
509
## The Policy model to apply. When set to false, only pods with the correct
510
## server label will have network access to the ports server is listening
511
## on. When true, server will accept connections from any source
512
## (with the correct destination port).
513
##
514
allowExternal: true
515
## @param server.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
516
##
517
allowExternalEgress: true
518
## @param server.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
519
##
520
kubeAPIServerPorts: [443, 6443, 8443]
521
## @param server.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
522
## e.g:
523
## extraIngress:
524
## - ports:
525
## - port: 1234
526
## from:
527
## - podSelector:
528
## - matchLabels:
529
## - role: frontend
530
## - podSelector:
531
## - matchExpressions:
532
## - key: role
533
## operator: In
534
## values:
535
## - frontend
536
extraIngress: []
537
## @param server.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
538
## e.g:
539
## extraEgress:
540
## - ports:
541
## - port: 1234
542
## to:
543
## - podSelector:
544
## - matchLabels:
545
## - role: frontend
546
## - podSelector:
547
## - matchExpressions:
548
## - key: role
549
## operator: In
550
## values:
551
## - frontend
552
##
553
extraEgress: []
554
## @param server.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
555
## @param server.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
556
##
557
ingressNSMatchLabels: {}
558
ingressNSPodMatchLabels: {}
559
## @section Argo Workflows Controller configuration parameters
560
##
561
562
## Argo Workflows Controller
563
##
564
controller:
565
## Chainguard Argo Workflow Controller image
566
## @param controller.image.registry [default: REGISTRY_NAME] controller image registry
567
## @param controller.image.repository [default: REPOSITORY_NAME/argo-workflow-controller] controller image repository
568
## @skip controller.image.tag controller image tag (immutable tags are recommended)
569
## @param controller.image.digest controller image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
570
## @param controller.image.pullPolicy controller image pull policy
571
## @param controller.image.pullSecrets controller image pull secrets
572
##
573
image:
574
registry: cgr.dev
575
repository: chainguard-private/argo-workflow-controller-iamguarded
576
tag: 4.1.6
577
digest: ""
578
## Specify a imagePullPolicy
579
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
580
##
581
pullPolicy: IfNotPresent
582
## Optionally specify an array of imagePullSecrets.
583
## Secrets must be manually created in the namespace.
584
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
585
## e.g:
586
## pullSecrets:
587
## - myRegistryKeySecretName
588
##
589
pullSecrets: []
590
## @param controller.replicaCount Number of controller replicas to deploy
591
##
592
replicaCount: 1
593
## Configure extra options for controller containers' liveness and readiness probes
594
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
595
## @param controller.livenessProbe.enabled Enable livenessProbe on controller nodes
596
## @param controller.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
597
## @param controller.livenessProbe.periodSeconds Period seconds for livenessProbe
598
## @param controller.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
599
## @param controller.livenessProbe.failureThreshold Failure threshold for livenessProbe
600
## @param controller.livenessProbe.successThreshold Success threshold for livenessProbe
601
##
602
livenessProbe:
603
enabled: true
604
initialDelaySeconds: 90
605
periodSeconds: 60
606
timeoutSeconds: 30
607
failureThreshold: 3
608
successThreshold: 1
609
## @param controller.readinessProbe.enabled Enable readinessProbe on controller nodes
610
## @param controller.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
611
## @param controller.readinessProbe.periodSeconds Period seconds for readinessProbe
612
## @param controller.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
613
## @param controller.readinessProbe.failureThreshold Failure threshold for readinessProbe
614
## @param controller.readinessProbe.successThreshold Success threshold for readinessProbe
615
##
616
readinessProbe:
617
enabled: true
618
initialDelaySeconds: 30
619
periodSeconds: 60
620
timeoutSeconds: 30
621
failureThreshold: 3
622
successThreshold: 1
623
## @param controller.startupProbe.enabled Enable startupProbe
624
## @param controller.startupProbe.path Path to check for startupProbe
625
## @param controller.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
626
## @param controller.startupProbe.periodSeconds Period seconds for startupProbe
627
## @param controller.startupProbe.timeoutSeconds Timeout seconds for startupProbe
628
## @param controller.startupProbe.failureThreshold Failure threshold for startupProbe
629
## @param controller.startupProbe.successThreshold Success threshold for startupProbe
630
##
631
startupProbe:
632
enabled: false
633
path: /
634
initialDelaySeconds: 300
635
periodSeconds: 10
636
timeoutSeconds: 5
637
failureThreshold: 6
638
successThreshold: 1
639
## @param controller.customLivenessProbe Controller custom livenessProbe that overrides the default one
640
##
641
customLivenessProbe: {}
642
## @param controller.customReadinessProbe Controller custom readinessProbe that overrides the default one
643
##
644
customReadinessProbe: {}
645
## @param controller.customStartupProbe Controller custom startupProbe that overrides the default one
646
##
647
customStartupProbe: {}
648
## controller resource requests and limits
649
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
650
## @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).
651
##
652
resourcesPreset: "nano"
653
## @param controller.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
654
## Example:
655
## resources:
656
## requests:
657
## cpu: 2
658
## memory: 512Mi
659
## limits:
660
## cpu: 3
661
## memory: 1024Mi
662
##
663
resources: {}
664
## Configure Pods Security Context
665
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
666
## @param controller.podSecurityContext.enabled Enabled controller pods' Security Context
667
## @param controller.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
668
## @param controller.podSecurityContext.sysctls Set kernel settings using the sysctl interface
669
## @param controller.podSecurityContext.supplementalGroups Set filesystem extra groups
670
## @param controller.podSecurityContext.fsGroup Set controller pod's Security Context fsGroup
671
##
672
podSecurityContext:
673
enabled: true
674
fsGroupChangePolicy: Always
675
sysctls: []
676
supplementalGroups: []
677
fsGroup: 1001
678
## Configure Container Security Context
679
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
680
## @param controller.containerSecurityContext.enabled Enabled controller containers' Security Context
681
## @param controller.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
682
## @param controller.containerSecurityContext.runAsUser Set controller containers' Security Context runAsUser
683
## @param controller.containerSecurityContext.runAsGroup Set controller containers' Security Context runAsGroup
684
## @param controller.containerSecurityContext.runAsNonRoot Set controller containers' Security Context runAsNonRoot
685
## @param controller.containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's Security Conte
686
## @param controller.containerSecurityContext.privileged Set controller container's Security Context privileged
687
## @param controller.containerSecurityContext.allowPrivilegeEscalation Set controller container's Security Context allowPrivilegeEscalation
688
## @param controller.containerSecurityContext.capabilities.drop List of capabilities to be dropped
689
## @param controller.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
690
##
691
containerSecurityContext:
692
enabled: true
693
seLinuxOptions: {}
694
runAsUser: 1001
695
runAsGroup: 1001
696
runAsNonRoot: true
697
privileged: false
698
allowPrivilegeEscalation: false
699
capabilities:
700
drop: ["ALL"]
701
seccompProfile:
702
type: "RuntimeDefault"
703
readOnlyRootFilesystem: true
704
## Server container port
705
## @param controller.containerPorts.metrics Port to expose controller metrics
706
## @param controller.containerPorts.telemetry Port to expose controller telemetry
707
##
708
containerPorts:
709
metrics: 9090
710
telemetry: 8081
711
## Create RBAC resources for the Argo workflows controller
712
## @param controller.rbac.create Create RBAC resources for the Argo workflows controller
713
##
714
rbac:
715
create: true
716
## Use an existing configmap instead of creating a configmap with the specified parameters
717
## @param controller.existingConfigMap
718
##
719
existingConfigMap: ""
720
## @param controller.extraArgs Extra arguments for the controller command line
721
##
722
extraArgs: ""
723
##
724
## @param controller.persistence.archive.enabled Save completed workflows to an SQL database.
725
persistence:
726
archive:
727
enabled: false
728
## Controller configmap configuration content. Requires controller.existingConfigmap to be empty.
729
## @param controller.config [object] Controller configmap configuration content
730
##
731
config: |
732
{{- if .Values.controller.instanceID.enabled }}
733
{{- if .Values.controller.instanceID.useReleaseName }}
734
instanceID: {{ .Release.Name }}
735
{{- else }}
736
instanceID: {{ .Values.controller.instanceID.explicitID }}
737
{{- end }}
738
{{- end }}
739
## How many workflows can be running at the same time
740
##
741
parallelism:
742
## Maximun number of workflows running in a namespace
743
##
744
namespaceParallelism:
745
{{- if or .Values.executor.resources .Values.executor.extraEnvVars .Values.executor.containerSecurityContext }}
746
executor:
747
{{- if .Values.executor.resources }}
748
resources: {{- include "common.tplvalues.render" (dict "value" .Values.executor.resources "context" $) | nindent 4 }}
749
{{- else if ne .Values.executor.resourcesPreset "none" }}
750
resources: {{- include "common.resources.preset" (dict "type" .Values.executor.resourcesPreset) | nindent 4 }}
751
{{- end }}
752
{{- if .Values.executor.extraEnvVars }}
753
env: {{- include "common.tplvalues.render" (dict "value" .Values.executor.extraEnvVars "context" $) | nindent 4 }}
754
{{- end }}
755
{{- if .Values.executor.containerSecurityContext }}
756
securityContext: {{- omit .Values.executor.containerSecurityContext "enabled" | toYaml | nindent 4 }}
757
{{- end }}
758
{{- end }}
759
## Uncomment to enable Artofact repository with the provided configuration
760
## artifactRepository:
761
## archiveLogs: false
762
## configuration: {}
763
##
764
{{- if .Values.controller.metrics.enabled }}
765
metricsConfig: {{- include "common.tplvalues.render" (dict "value" .Values.controller.metrics "context" $) | nindent 2 }}
766
{{- end }}
767
{{- if .Values.controller.telemetry.enabled }}
768
telemetryConfig: {{- include "common.tplvalues.render" (dict "value" .Values.controller.telemetry "context" $) | nindent 2 }}
769
{{- end }}
770
{{- if (include "argo-workflows.controller.persistence.enabled" .) }}
771
persistence:
772
connectionPool:
773
maxIdleConns: 100
774
maxOpenConns: 0
775
nodeStatusOffLoad: false
776
archive: {{ include "common.tplvalues.render" (dict "value" .Values.controller.persistence.archive.enabled "context" $) }}
777
{{- if or .Values.postgresql.enabled (and .Values.externalDatabase.enabled (eq .Values.externalDatabase.type "postgresql")) }}
778
postgresql:
779
{{- else if or .Values.mysql.enabled (and .Values.externalDatabase.enabled (eq .Values.externalDatabase.type "mysql")) }}
780
mysql:
781
{{- end }}
782
host: {{ include "argo-workflows.controller.database.host" . }}
783
port: {{ include "argo-workflows.controller.database.port" . }}
784
database: {{ include "argo-workflows.controller.database" . }}
785
tableName: argo_workflows
786
## the database secrets must be in the same namespace of the controller
787
##
788
userNameSecret:
789
name: {{ include "argo-workflows.controller.database.username.secret" . }}
790
key: username
791
passwordSecret:
792
name: {{ include "argo-workflows.controller.database.password.secret" . }}
793
key: {{ include "argo-workflows.controller.database.password.secret.key" . }}
794
{{- end }}
795
{{- if .Values.controller.workflowDefaults }}
796
workflowDefaults: {{- include "common.tplvalues.render" (dict "value" .Values.controller.workflowDefaults "context" $) | nindent 2 }}
797
{{- end }}
798
{{- if and .Values.server.auth.enabled .Values.server.auth.sso.enabled }}
799
sso: {{- include "common.tplvalues.render" (dict "value" .Values.server.auth.sso.config "context" $) | nindent 2 }}
800
{{- end }}
801
## Uncomment to set workflowRestrictions
802
## Ref: https://argoproj.github.io/argo-workflows/workflow-restrictions/
803
## workflowRestrictions: {}
804
## Uncomment to set links
805
## Ref: https://argoproj.github.io/argo-workflows/links/
806
## links: {}
807
##
808
## Configure the controller to accept only submissions with a matching instanceID attribute
809
## @param controller.instanceID.enabled Enable submission filtering based on instanceID attribute. Requires to set instanceID.useReleaseName or instanceID.explicitID
810
## @param controller.instanceID.useReleaseName Use the release name to filter submissions
811
## @param controller.instanceID.explicitID Filter submissions based on an explicit instance ID
812
##
813
instanceID:
814
enabled: false
815
## NOTE: If `instanceID.enabled` is set to `true` then either `instanceID.userReleaseName` or `instanceID.explicitID` must be defined.
816
##
817
useReleaseName: false
818
explicitID: ""
819
## @param controller.clusterWorkflowTemplates.enabled Whether to create a ClusterRole and Cluster Role Binding to access ClusterWokflowTemplates resources
820
##
821
clusterWorkflowTemplates:
822
enabled: true
823
## Metrics configuration for the controller
824
## @param controller.metrics.enabled Enable controller metrics exporter
825
## @param controller.metrics.path Path to expose controller metrics
826
## @param controller.metrics.serviceMonitor.enabled Enable prometheus service monitor configuration
827
##
828
metrics:
829
enabled: false
830
path: /metrics
831
serviceMonitor:
832
enabled: false
833
## Telemetry configuration for the controller
834
## @param controller.telemetry.enabled Enable telemetry for the controller
835
## @param controller.telemetry.path Path to expose telemetry information
836
##
837
telemetry:
838
enabled: false
839
path: /telemetry
840
## Number of workflow workers to deploy
841
## @param controller.workflowWorkers Number of workflow workers to deploy
842
##
843
workflowWorkers: 32
844
## Namespaces allowed to run workflows
845
## @param controller.workflowNamespaces Namespaces allowed to run workflows
846
##
847
workflowNamespaces:
848
- default
849
## Default Workflow Values
850
## Ref: https://argoproj.github.io/argo-workflows/default-workflow-specs/#setting-default-workflow-values
851
## @param controller.workflowDefaults Default Workflow Values
852
##
853
workflowDefaults: {}
854
## Logging level for the controller
855
## @param controller.logging.level Level for the controller logging
856
## @param controller.logging.globalLevel Global logging level for the controller
857
##
858
logging:
859
level: info
860
globalLevel: "0"
861
## Pod disruption budget configuration
862
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
863
## @param controller.pdb.enabled Create Pod Disruption Budget for the controller component
864
## @param controller.pdb.minAvailable Sets the min number of pods availables for the Pod Disruption Budget
865
## @param controller.pdb.maxUnavailable Sets the max number of pods unavailable for the Pod Disruption Budget
866
##
867
pdb:
868
enabled: true
869
minAvailable: ""
870
maxUnavailable: ""
871
## Controller Service Account
872
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
873
## @param controller.serviceAccount.create Specifies whether a ServiceAccount should be created
874
## @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.
875
## @param controller.serviceAccount.automountServiceAccountToken Automount service account token for the server service account
876
## @param controller.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
877
##
878
serviceAccount:
879
create: true
880
name: ""
881
automountServiceAccountToken: false
882
annotations: {}
883
## @param controller.command Override default container command (useful when using custom images)
884
##
885
command: []
886
## @param controller.args Override default container args (useful when using custom images)
887
##
888
args: []
889
## @param controller.automountServiceAccountToken Mount Service Account token in pod
890
##
891
automountServiceAccountToken: true
892
## @param controller.hostAliases controller pods host aliases
893
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
894
##
895
hostAliases: []
896
## @param controller.podLabels Extra labels for controller pods
897
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
898
##
899
podLabels: {}
900
## @param controller.podAnnotations Annotations for controller pods
901
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
902
##
903
podAnnotations: {}
904
## @param controller.podAffinityPreset Pod affinity preset. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard`
905
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
906
##
907
podAffinityPreset: ""
908
## @param controller.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard`
909
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
910
##
911
podAntiAffinityPreset: soft
912
## Node controller.affinity preset
913
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
914
##
915
nodeAffinityPreset:
916
## @param controller.nodeAffinityPreset.type Node affinity preset type. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard`
917
##
918
type: ""
919
## @param controller.nodeAffinityPreset.key Node label key to match. Ignored if `controller.affinity` is set
920
##
921
key: ""
922
## @param controller.nodeAffinityPreset.values Node label values to match. Ignored if `controller.affinity` is set
923
## E.g.
924
## values:
925
## - e2e-az1
926
## - e2e-az2
927
##
928
values: []
929
## @param controller.affinity Affinity for controller pods assignment
930
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
931
## NOTE: `controller.podAffinityPreset`, `controller.podAntiAffinityPreset`, and `controller.nodeAffinityPreset` will be ignored when it's set
932
##
933
affinity: {}
934
## @param controller.nodeSelector Node labels for controller pods assignment
935
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
936
##
937
nodeSelector: {}
938
## @param controller.tolerations Tolerations for controller pods assignment
939
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
940
##
941
tolerations: []
942
## @param controller.updateStrategy.type controller statefulset strategy type
943
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
944
##
945
updateStrategy:
946
## StrategyType
947
## Can be set to RollingUpdate or OnDelete
948
##
949
type: RollingUpdate
950
## @param controller.topologySpreadConstraints Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in
951
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
952
##
953
## topologySpreadConstraints:
954
## - maxSkew: 1
955
## topologyKey: failure-domain.beta.kubernetes.io/zone
956
## whenUnsatisfiable: DoNotSchedule
957
##
958
topologySpreadConstraints: []
959
## @param controller.schedulerName Alternate scheduler for the server controller
960
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
961
##
962
schedulerName: ""
963
## @param controller.priorityClassName controller pods' priorityClassName
964
##
965
priorityClassName: ""
966
## @param controller.lifecycleHooks for the controller container(s) to automate configuration before or after startup
967
##
968
lifecycleHooks: {}
969
## @param controller.extraEnvVars Array with extra environment variables to add to controller nodes
970
## e.g:
971
## extraEnvVars:
972
## - name: FOO
973
## value: "bar"
974
##
975
extraEnvVars: []
976
## @param controller.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for controller nodes
977
##
978
extraEnvVarsCM: ""
979
## @param controller.extraEnvVarsSecret Name of existing Secret containing extra env vars for controller nodes
980
##
981
extraEnvVarsSecret: ""
982
## @param controller.extraVolumes Optionally specify extra list of additional volumes for the controller pod(s)
983
##
984
extraVolumes: []
985
## @param controller.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the controller container(s)
986
##
987
extraVolumeMounts: []
988
## @param controller.sidecars Add additional sidecar containers to the controller pod(s)
989
## e.g:
990
## sidecars:
991
## - name: your-image-name
992
## image: your-image
993
## imagePullPolicy: Always
994
## ports:
995
## - name: portname
996
## containerPort: 1234
997
##
998
sidecars: []
999
## @param controller.initContainers Add additional init containers to the controller pod(s)
1000
## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
1001
## e.g:
1002
## initContainers:
1003
## - name: your-image-name
1004
## image: your-image
1005
## imagePullPolicy: Always
1006
## command: ['sh', '-c', 'echo "hello world"']
1007
##
1008
initContainers: []
1009
## Controller service parameters
1010
##
1011
service:
1012
## @param controller.service.type controller service type
1013
##
1014
type: ClusterIP
1015
## @param controller.service.ports.metrics Metrics port for the controller
1016
## @param controller.service.ports.telemetry Telemetry port for the controller
1017
##
1018
ports:
1019
metrics: 8080
1020
telemetry: 8081
1021
## Node ports to expose
1022
## @param controller.service.nodePorts.metrics Node port for HTTP
1023
## @param controller.service.nodePorts.telemetry Node port for HTTPS
1024
## NOTE: choose port between <30000-32767>
1025
##
1026
nodePorts:
1027
metrics: ""
1028
telemetry: ""
1029
## @param controller.service.clusterIP controller service Cluster IP
1030
## e.g.:
1031
## clusterIP: None
1032
##
1033
clusterIP: ""
1034
## @param controller.service.loadBalancerIP controller service Load Balancer IP
1035
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
1036
##
1037
loadBalancerIP: ""
1038
## @param controller.service.loadBalancerSourceRanges controller service Load Balancer sources
1039
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1040
## e.g:
1041
## loadBalancerSourceRanges:
1042
## - 10.10.10.0/24
1043
##
1044
loadBalancerSourceRanges: []
1045
## @param controller.service.externalTrafficPolicy controller service external traffic policy
1046
## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1047
##
1048
externalTrafficPolicy: Cluster
1049
## @param controller.service.annotations Additional custom annotations for controller service
1050
##
1051
annotations: {}
1052
## @param controller.service.extraPorts Extra port to expose on the controller service
1053
##
1054
extraPorts: []
1055
## Network Policies
1056
## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1057
##
1058
networkPolicy:
1059
## @param controller.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1060
##
1061
enabled: true
1062
## @param controller.networkPolicy.allowExternal Don't require server label for connections
1063
## The Policy model to apply. When set to false, only pods with the correct
1064
## server label will have network access to the ports server is listening
1065
## on. When true, server will accept connections from any source
1066
## (with the correct destination port).
1067
##
1068
allowExternal: true
1069
## @param controller.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1070
##
1071
allowExternalEgress: true
1072
## @param controller.networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
1073
##
1074
kubeAPIServerPorts: [443, 6443, 8443]
1075
## @param controller.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1076
## e.g:
1077
## extraIngress:
1078
## - ports:
1079
## - port: 1234
1080
## from:
1081
## - podSelector:
1082
## - matchLabels:
1083
## - role: frontend
1084
## - podSelector:
1085
## - matchExpressions:
1086
## - key: role
1087
## operator: In
1088
## values:
1089
## - frontend
1090
extraIngress: []
1091
## @param controller.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy (ignored if allowExternalEgress=true)
1092
## e.g:
1093
## extraEgress:
1094
## - ports:
1095
## - port: 1234
1096
## to:
1097
## - podSelector:
1098
## - matchLabels:
1099
## - role: frontend
1100
## - podSelector:
1101
## - matchExpressions:
1102
## - key: role
1103
## operator: In
1104
## values:
1105
## - frontend
1106
##
1107
extraEgress: []
1108
## @param controller.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1109
## @param controller.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1110
##
1111
ingressNSMatchLabels: {}
1112
ingressNSPodMatchLabels: {}
1113
## @section Executor configuration section
1114
##
1115
executor:
1116
## Chainguard Argo Workflow Executor image
1117
## @param executor.image.registry [default: REGISTRY_NAME] executor image registry
1118
## @param executor.image.repository [default: REPOSITORY_NAME/argo-workflow-exec] executor image repository
1119
## @skip executor.image.tag executor image tag (immutable tags are recommended)
1120
## @param executor.image.digest executor image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1121
## @param executor.image.pullPolicy executor image pull policy
1122
## @param executor.image.pullSecrets executor image pull secrets
1123
##
1124
image:
1125
registry: cgr.dev
1126
repository: chainguard-private/argo-workflow-exec-iamguarded
1127
tag: 4.1.6
1128
digest: ""
1129
## Specify a imagePullPolicy
1130
## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
1131
##
1132
pullPolicy: IfNotPresent
1133
## Optionally specify an array of imagePullSecrets.
1134
## Secrets must be manually created in the namespace.
1135
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1136
## e.g:
1137
## pullSecrets:
1138
## - myRegistryKeySecretName
1139
##
1140
pullSecrets: []
1141
## Init container's resource requests and limits
1142
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1143
## @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).
1144
##
1145
resourcesPreset: "nano"
1146
## @param executor.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1147
## Example:
1148
## resources:
1149
## requests:
1150
## cpu: 2
1151
## memory: 512Mi
1152
## limits:
1153
## cpu: 3
1154
## memory: 1024Mi
1155
##
1156
resources: {}
1157
## @param executor.extraEnvVars Array with extra environment variables to add to server nodes
1158
## e.g:
1159
## extraEnvVars:
1160
## - name: FOO
1161
## value: "bar"
1162
##
1163
extraEnvVars: []
1164
## Configure Container Security Context
1165
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
1166
## @param executor.containerSecurityContext.enabled Enabled executor containers' Security Context
1167
## @param executor.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1168
## @param executor.containerSecurityContext.runAsUser Set executor containers' Security Context runAsUser
1169
## @param executor.containerSecurityContext.runAsGroup Set executor containers' Security Context runAsGroup
1170
## @param executor.containerSecurityContext.runAsNonRoot Set executor containers' Security Context runAsNonRoot
1171
## @param executor.containerSecurityContext.readOnlyRootFilesystem Set read only root file system pod's Security Conte
1172
## @param executor.containerSecurityContext.privileged Set executor container's Security Context privileged
1173
## @param executor.containerSecurityContext.allowPrivilegeEscalation Set executor container's Security Context allowPrivilegeEscalation
1174
## @param executor.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1175
## @param executor.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1176
##
1177
containerSecurityContext:
1178
enabled: true
1179
seLinuxOptions: {}
1180
runAsUser: 1001
1181
runAsGroup: 1001
1182
runAsNonRoot: true
1183
privileged: false
1184
allowPrivilegeEscalation: false
1185
capabilities:
1186
drop: ["ALL"]
1187
seccompProfile:
1188
type: "RuntimeDefault"
1189
readOnlyRootFilesystem: true
1190
## @section Traffic Exposure Parameters
1191
##
1192
1193
## Server ingress parameters
1194
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
1195
##
1196
ingress:
1197
## @param ingress.enabled Enable ingress record generation for server
1198
##
1199
enabled: false
1200
## @param ingress.pathType Ingress path type
1201
##
1202
pathType: ImplementationSpecific
1203
## @param ingress.apiVersion Force Ingress API version (automatically detected if not set)
1204
##
1205
apiVersion: ""
1206
## @param ingress.hostname Default host for the ingress record
1207
##
1208
hostname: server.local
1209
## @param ingress.path Default path for the ingress record
1210
## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
1211
##
1212
path: /
1213
## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
1214
## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster.
1215
## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
1216
##
1217
ingressClassName: ""
1218
## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
1219
## For a full list of possible ingress annotations, please see
1220
## ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
1221
## Use this parameter to set the required annotations for cert-manager, see
1222
## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
1223
##
1224
## e.g:
1225
## annotations:
1226
## kubernetes.io/ingress.class: nginx
1227
## cert-manager.io/cluster-issuer: cluster-issuer-name
1228
##
1229
annotations: {}
1230
## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
1231
## TLS certificates will be retrieved from a TLS secret with name: `{{- printf "%s-tls" .Values.ingress.hostname }}`
1232
## You can:
1233
## - Use the `ingress.secrets` parameter to create this TLS secret
1234
## - Rely on cert-manager to create it by setting the corresponding annotations
1235
## - Rely on Helm to create self-signed certificates by setting `ingress.selfSigned=true`
1236
##
1237
tls: false
1238
## @param ingress.selfSigned Create a TLS secret for this ingress record using self-signed certificates generated by Helm
1239
##
1240
selfSigned: false
1241
## @param ingress.extraHosts An array with additional hostname(s) to be covered with the ingress record
1242
## e.g:
1243
## extraHosts:
1244
## - name: server.local
1245
## path: /
1246
##
1247
extraHosts: []
1248
## @param ingress.extraPaths An array with additional arbitrary paths that may need to be added to the ingress under the main host
1249
## e.g:
1250
## extraPaths:
1251
## - path: /*
1252
## backend:
1253
## serviceName: ssl-redirect
1254
## servicePort: use-annotation
1255
##
1256
extraPaths: []
1257
## @param ingress.extraTls TLS configuration for additional hostname(s) to be covered with this ingress record
1258
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
1259
## e.g:
1260
## extraTls:
1261
## - hosts:
1262
## - server.local
1263
## secretName: server.local-tls
1264
##
1265
extraTls: []
1266
## @param ingress.secrets Custom TLS certificates as secrets
1267
## NOTE: 'key' and 'certificate' are expected in PEM format
1268
## NOTE: 'name' should line up with a 'secretName' set further up
1269
## 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
1270
## If it is not set and you're NOT using cert-manager either, self-signed certificates will be created valid for 365 days
1271
## It is also possible to create and manage the certificates outside of this helm chart
1272
## Please see README.md for more information
1273
## e.g:
1274
## secrets:
1275
## - name: server.local-tls
1276
## key: |-
1277
## -----BEGIN RSA PRIVATE KEY-----
1278
## ...
1279
## -----END RSA PRIVATE KEY-----
1280
## certificate: |-
1281
## -----BEGIN CERTIFICATE-----
1282
## ...
1283
## -----END CERTIFICATE-----
1284
##
1285
secrets: []
1286
## @param ingress.extraRules Additional rules to be covered with this ingress record
1287
## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-rules
1288
## e.g:
1289
## extraRules:
1290
## - host: server.local
1291
## http:
1292
## path: /
1293
## backend:
1294
## service:
1295
## name: server-svc
1296
## port:
1297
## name: http
1298
##
1299
extraRules: []
1300
## @section Workflows configuration
1301
##
1302
workflows:
1303
## Service account configuration for workflows
1304
## @param workflows.serviceAccount.create Whether to create a service account to run workflows
1305
## @param workflows.serviceAccount.name Service account name to run workflows
1306
## @param workflows.serviceAccount.automountServiceAccountToken Automount service account token for the workflows service account
1307
## @param workflows.serviceAccount.annotations Annotations for service account. Evaluated as a template. Only used if `create` is `true`.
1308
##
1309
serviceAccount:
1310
create: true
1311
name: ""
1312
automountServiceAccountToken: false
1313
annotations: {}
1314
## Create RBAC resources to run workflows.
1315
## A Role and Role Bindding are created per namespace in controller.workflowNamespaces
1316
## @param workflows.rbac.create Whether to create RBAC resource to run workflows
1317
##
1318
rbac:
1319
create: true
1320
## @section PostgreSQL subchart
1321
##
1322
1323
## Postgresql subchart configuration
1324
## @param postgresql.enabled Enable PostgreSQL subchart and controller persistence using PostgreSQL
1325
## @param postgresql.service.ports.postgresql PostgreSQL port
1326
## @param postgresql.auth.username PostgreSQL username
1327
## @param postgresql.auth.database PortgreSQL database name
1328
## @param postgresql.auth.password PortgreSQL database password
1329
##
1330
postgresql:
1331
enabled: true
1332
image:
1333
registry: cgr.dev
1334
repository: chainguard-private/postgres-iamguarded
1335
tag: 18.7-r0
1336
digest: ""
1337
service:
1338
ports:
1339
postgresql: 5432
1340
auth:
1341
username: postgres
1342
database: ig_argo_workflows
1343
password: ""
1344
primary:
1345
## PostgreSQL Primary resource requests and limits
1346
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1347
## @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).
1348
##
1349
resourcesPreset: "nano"
1350
## @param postgresql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1351
## Example:
1352
## resources:
1353
## requests:
1354
## cpu: 2
1355
## memory: 512Mi
1356
## limits:
1357
## cpu: 3
1358
## memory: 1024Mi
1359
##
1360
resources: {}
1361
## @section MySQL subchart
1362
##
1363
1364
## Mysql subchart configuration
1365
## @param mysql.enabled Enable MySQL subchart and controller persistence using MySQL
1366
## @param mysql.service.ports.mysql MySQL port
1367
## @param mysql.auth.username MySQL username
1368
## @param mysql.auth.database MySQL database name
1369
## @param mysql.auth.password MySQL database password
1370
##
1371
mysql:
1372
enabled: false
1373
image:
1374
registry: cgr.dev
1375
repository: chainguard-private/mysql-iamguarded
1376
tag: 8.4.13
1377
digest: ""
1378
service:
1379
ports:
1380
mysql: 3306
1381
auth:
1382
username: mysql
1383
database: ig_argo_workflows
1384
password: ""
1385
primary:
1386
## MySQL primary container's resource requests and limits
1387
## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1388
## We usually recommend not to specify default resources and to leave this as a conscious
1389
## choice for the user. This also increases chances charts run on environments with little
1390
## resources, such as Minikube. If you do want to specify resources, uncomment the following
1391
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
1392
## @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).
1393
##
1394
resourcesPreset: "small"
1395
## @param mysql.primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1396
## Example:
1397
## resources:
1398
## requests:
1399
## cpu: 2
1400
## memory: 512Mi
1401
## limits:
1402
## cpu: 3
1403
## memory: 1024Mi
1404
##
1405
resources: {}
1406
## @section External Database configuration
1407
##
1408
1409
## External Database Configuration
1410
## @param externalDatabase.enabled Enable using externaldatabase and the controller to use persistence with it
1411
## @param externalDatabase.host External Database server host
1412
## @param externalDatabase.port External Database server port
1413
## @param externalDatabase.username External Database username
1414
## @param externalDatabase.password External Database user password
1415
## @param externalDatabase.database External Database database name
1416
## @param externalDatabase.existingSecret The name of an existing secret with database credentials
1417
## @param externalDatabase.type Either postgresql or mysql
1418
##
1419
externalDatabase:
1420
enabled: false
1421
## Either "postgresql" or "mysql"
1422
##
1423
type: ""
1424
host: localhost
1425
port: 3306
1426
username: ig_workflows
1427
password: ""
1428
database: iamguarded_workflows
1429
## NOTE: Must contain key `database-password`
1430
## NOTE: When it's set, the `externalDatabase.password` parameter is ignored
1431
##
1432
existingSecret: ""
1433

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.