DirectorySecurity AdvisoriesPricing
Sign in
Directory
argo-workflows logoHELM

argo-workflows

Helm chart
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
images:
2
# -- Common tag for Argo Workflows images. Defaults to `.Chart.AppVersion`.
3
tag: ""
4
# -- imagePullPolicy to apply to all containers
5
pullPolicy: Always
6
# -- Secrets with credentials to pull images from a private registry
7
pullSecrets: []
8
# - name: argo-pull-secret
9
## Custom resource configuration
10
crds:
11
# -- Install and upgrade CRDs
12
install: true
13
# -- Keep CRDs on chart uninstall
14
keep: true
15
# -- Use full CRDs with complete OpenAPI schemas. When false, uses minified CRDs with x-kubernetes-preserve-unknown-fields.
16
# Full CRDs are very large and are installed via a pre-install/pre-upgrade hook Job that uses server-side apply.
17
full: true
18
# -- Annotations to be added to all CRDs (only applies when crds.full=false)
19
annotations: {}
20
# Configuration for the CRD install Job (only used when crds.full=true)
21
upgradeJob:
22
# -- Image for the container that applies the full CRDs. It bundles the CRDs for its own tag, so keep it in step with the app version.
23
## Ref: https://argo-workflows.readthedocs.io/en/latest/crd-installer/
24
image:
25
# -- Registry to use for the CRD installer
26
registry: cgr.dev
27
# -- Repository to use for the CRD installer
28
repository: chainguard-private/kubectl
29
# -- Image tag for the CRD installer. Defaults to `.Values.images.tag`.
30
tag: 1.37.1-r3@sha256:c55695bc149aac79ba709a3bd1367d7a9ddb639bc748a6afbbeba0105da90cc6
31
# -- Resources for the CRD install Job containers
32
resources: {}
33
# -- Node selector for the CRD install Job
34
nodeSelector: {}
35
# -- Pod security context for the CRD install Job pod
36
podSecurityContext: {}
37
# -- Optional labels to add to the CRD install Job pod
38
podLabels: {}
39
# -- Tolerations for the CRD install Job
40
tolerations: []
41
# -- Image pull secrets for the CRD install Job
42
# @default -- `.Values.images.pullSecrets`
43
imagePullSecrets: []
44
# -- Security context for the CRD install Job container
45
securityContext:
46
readOnlyRootFilesystem: true
47
runAsNonRoot: true
48
allowPrivilegeEscalation: false
49
runAsUser: 8737
50
runAsGroup: 8737
51
seccompProfile:
52
type: RuntimeDefault
53
capabilities:
54
drop:
55
- ALL
56
# -- Extra environment variables to provide to the CRD install Job container
57
extraEnv: []
58
# -- Create ClusterRoles that extend existing ClusterRoles to interact with Argo Workflows CRDs.
59
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
60
createAggregateRoles: true
61
# -- String to partially override "argo-workflows.fullname" template
62
nameOverride:
63
# -- String to fully override "argo-workflows.fullname" template
64
fullnameOverride:
65
# -- Override the namespace
66
# @default -- `.Release.Namespace`
67
namespaceOverride: ""
68
# -- Labels to set on all resources
69
commonLabels: {}
70
# -- Override the Kubernetes version, which is used to evaluate certain manifests
71
kubeVersionOverride: ""
72
# Override APIVersions
73
apiVersionOverrides:
74
# -- String to override apiVersion of autoscaling rendered by this helm chart
75
autoscaling: "" # autoscaling/v2
76
# -- String to override apiVersion of GKE resources rendered by this helm chart
77
cloudgoogle: "" # cloud.google.com/v1
78
# -- String to override apiVersion of monitoring CRDs (ServiceMonitor) rendered by this helm chart
79
monitoring: "" # monitoring.coreos.com/v1
80
# -- Restrict Argo to operate only in a single namespace (the namespace of the
81
# Helm release) by apply Roles and RoleBindings instead of the Cluster
82
# equivalents, and start workflow-controller with the --namespaced flag. Use it
83
# in clusters with strict access policy.
84
singleNamespace: false
85
workflow:
86
# -- Deprecated; use controller.workflowNamespaces instead.
87
namespace:
88
serviceAccount:
89
# -- Specifies whether a service account should be created
90
create: false
91
# -- Specifies whether a secret for each service account should be created
92
createSecret: false
93
# -- Labels applied to created service account
94
labels: {}
95
# -- Annotations applied to created service account
96
annotations: {}
97
# -- Service account which is used to run workflows
98
name: "argo-workflow"
99
# -- Secrets with credentials to pull images from a private registry. Same format as `.Values.images.pullSecrets`
100
pullSecrets: []
101
rbac:
102
# -- Adds Role and RoleBinding for the above specified service account to be able to run workflows.
103
# A Role and Rolebinding pair is also created for each namespace in controller.workflowNamespaces (see below)
104
create: true
105
# -- Allows permissions for the Argo Agent. Only required if using http/plugin templates
106
agentPermissions: false
107
# -- Allows permissions for the Argo Artifact GC pod. Only required if using artifact gc
108
artifactGC: false
109
# -- Extra service accounts to be added to the RoleBinding
110
serviceAccounts: []
111
# - name: my-service-account
112
# namespace: my-namespace
113
# -- Additional rules for the service account that runs the workflows.
114
rules: []
115
controller:
116
image:
117
# -- Registry to use for the controller
118
registry: cgr.dev
119
# -- Registry to use for the controller
120
repository: chainguard-private/argo-workflowcontroller
121
# -- Image tag for the workflow controller. Defaults to `.Values.images.tag`.
122
tag: 4.1.6-r0@sha256:3c0e2e901bdd94066c232b4600fcc70ade2dce0704998900b4a95df56f4e0da1
123
# -- parallelism dictates how many workflows can be running at the same time
124
parallelism:
125
# -- Globally limits the rate at which pods are created.
126
# This is intended to mitigate flooding of the Kubernetes API server by workflows with a large amount of
127
# parallel nodes.
128
resourceRateLimit: {}
129
# limit: 10
130
# burst: 1
131
132
rbac:
133
# -- Adds Role and RoleBinding for the controller.
134
create: true
135
# -- Allows controller to get, list, and watch certain k8s secrets
136
secretWhitelist: []
137
# -- Allows controller to get, list and watch all k8s secrets. Can only be used if secretWhitelist is empty.
138
accessAllSecrets: false
139
# -- Allows controller to create and update ConfigMaps. Enables memoization feature
140
writeConfigMaps: false
141
configMap:
142
# -- Create a ConfigMap for the controller
143
create: true
144
# -- ConfigMap name
145
name: ""
146
# -- ConfigMap annotations
147
annotations: {}
148
# -- Add checksum/config pod annotation to restart the controller when the ConfigMap changes. Alternative to the built-in config watcher; does not cover semaphore ConfigMaps.
149
restartOnChange: false
150
# -- Limits the maximum number of incomplete workflows in a namespace
151
namespaceParallelism:
152
# -- Resolves ongoing, uncommon AWS EKS bug: https://github.com/argoproj/argo-workflows/pull/4224
153
initialDelay:
154
# -- deploymentAnnotations is an optional map of annotations to be applied to the controller Deployment
155
deploymentAnnotations: {}
156
# -- podAnnotations is an optional map of annotations to be applied to the controller Pods
157
podAnnotations: {}
158
# -- Optional labels to add to the controller pods
159
podLabels: {}
160
# -- SecurityContext to set on the controller pods
161
podSecurityContext: {}
162
# -- [DNS configuration](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config) for controller pods
163
dnsConfig: {}
164
# -- Alternative DNS policy for controller pods
165
dnsPolicy: ""
166
# podPortName: http
167
metricsConfig:
168
# -- Enables prometheus metrics server
169
enabled: false
170
# -- Path is the path where metrics are emitted. Must start with a "/".
171
path: /metrics
172
# -- Frequency at which prometheus scrapes metrics
173
interval: 30s
174
# -- Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used.
175
scrapeTimeout: ""
176
# -- Port is the port where metrics are emitted
177
port: 9090
178
# -- How often custom metrics are cleared from memory
179
metricsTTL: ""
180
# -- Flag that instructs prometheus to ignore metric emission errors.
181
ignoreErrors: false
182
# -- Flag that use a self-signed cert for TLS
183
secure: false
184
# -- Container metrics port name
185
portName: metrics
186
# -- Service metrics port
187
servicePort: 8080
188
# -- Service metrics port name
189
servicePortName: metrics
190
# -- serviceMonitor scheme
191
scheme: http
192
# -- Flag to enable headless service
193
headlessService: false
194
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
195
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#honorlabels
196
honorLabels: false
197
# -- ServiceMonitor relabel configs to apply to samples before scraping
198
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
199
relabelings: []
200
# -- ServiceMonitor metric relabel configs to apply to samples before ingestion
201
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
202
metricRelabelings: []
203
# -- ServiceMonitor will add labels from the service to the Prometheus metric
204
## Ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#servicemonitorspec
205
targetLabels: []
206
# -- Manipulate the metrics created by the workflow controller
207
## Ref: https://argo-workflows.readthedocs.io/en/latest/metrics/#modifiers
208
modifiers: {}
209
# -- the controller container's securityContext
210
securityContext:
211
readOnlyRootFilesystem: true
212
runAsNonRoot: true
213
allowPrivilegeEscalation: false
214
capabilities:
215
drop:
216
- ALL
217
# -- enable Workflow Archive to store the status of workflows. Postgres, MySQL (>= 5.7.8) and MariaDB (>= 10.2.7, requires Argo Workflows v4.1+) are available.
218
## Ref: https://argo-workflows.readthedocs.io/en/stable/workflow-archive/
219
persistence: {}
220
# connectionPool:
221
# maxIdleConns: 100
222
# maxOpenConns: 0
223
# # save the entire workflow into etcd and DB
224
# nodeStatusOffLoad: false
225
# # enable archiving of old workflows
226
# archive: false
227
# postgresql:
228
# host: localhost
229
# port: 5432
230
# database: postgres
231
# tableName: argo_workflows
232
# # the database secrets must be in the same namespace of the controller
233
# userNameSecret:
234
# name: argo-postgres-config
235
# key: username
236
# passwordSecret:
237
# name: argo-postgres-config
238
# key: password
239
# # Instead of passwordSecret, Postgres can authenticate with a token.
240
# # Requires Argo Workflows v4.1+; userNameSecret is still required.
241
# # Microsoft Entra ID (needs Azure Workload Identity on the controller's service account):
242
# azureToken:
243
# enabled: true
244
# scope: https://ossrdbms-aad.database.windows.net/.default
245
# # AWS RDS IAM authentication (needs IRSA or EKS Pod Identity on the controller's service account):
246
# awsRDSToken:
247
# enabled: true
248
# region: us-east-1
249
# ssl: true
250
# # sslMode must be one of: disable, require, verify-ca, verify-full
251
# # you can find more information about those ssl options here: https://godoc.org/github.com/lib/pq
252
# sslMode: require
253
# mysql:
254
# host: localhost
255
# port: 3306
256
# database: argo
257
# tableName: argo_workflows
258
# userNameSecret:
259
# name: argo-mysql-config
260
# key: username
261
# passwordSecret:
262
# name: argo-mysql-config
263
# key: password
264
265
# -- Default values that will apply to all Workflows from this controller, unless overridden on the Workflow-level.
266
# Only valid for 2.7+
267
## See more: https://argo-workflows.readthedocs.io/en/stable/default-workflow-specs/
268
workflowDefaults: {}
269
# spec:
270
# ttlStrategy:
271
# secondsAfterCompletion: 86400
272
# # Ref: https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/
273
# artifactRepositoryRef:
274
# configMap: my-artifact-repository # default is "artifact-repositories"
275
# key: v2-s3-artifact-repository # default can be set by the `workflows.argoproj.io/default-artifact-repository` annotation in config map.
276
277
# -- Number of workflow workers
278
workflowWorkers: # 32
279
# -- Number of workflow TTL workers
280
workflowTTLWorkers: # 4
281
# -- Number of pod cleanup workers
282
podCleanupWorkers: # 4
283
# -- Number of cron workflow workers
284
# Only valid for 3.5+
285
cronWorkflowWorkers: # 8
286
# -- Restricts the Workflows that the controller will process.
287
# Only valid for 2.9+
288
workflowRestrictions: {}
289
# templateReferencing: Strict|Secure
290
291
# telemetryConfig controls the path and port for prometheus telemetry. Telemetry is enabled and emitted in the same endpoint
292
# as metrics by default, but can be overridden using this config.
293
telemetryConfig:
294
# -- Enables prometheus telemetry server
295
enabled: false
296
# -- telemetry path
297
path: /telemetry
298
# -- Frequency at which prometheus scrapes telemetry data
299
interval: 30s
300
# -- Prometheus ServiceMonitor scrapeTimeout. If empty, Prometheus uses the global scrape timeout unless it is less than the target's scrape interval value in which the latter is used.
301
scrapeTimeout: ""
302
# -- telemetry container port
303
port: 8081
304
# -- How often custom metrics are cleared from memory
305
metricsTTL: ""
306
# -- Flag that instructs prometheus to ignore metric emission errors.
307
ignoreErrors: false
308
# -- Flag that use a self-signed cert for TLS
309
secure: false
310
# -- telemetry service port
311
servicePort: 8081
312
# -- telemetry service port name
313
servicePortName: telemetry
314
# -- telemetry serviceMonitor scheme to use
315
scheme: http
316
serviceMonitor:
317
# -- Enable a prometheus ServiceMonitor
318
enabled: false
319
# -- Prometheus ServiceMonitor labels
320
additionalLabels: {}
321
# -- Prometheus ServiceMonitor namespace
322
namespace: "" # "monitoring"
323
serviceAccount:
324
# -- Create a service account for the controller
325
create: true
326
# -- Service account name
327
name: ""
328
# -- Labels applied to created service account
329
labels: {}
330
# -- Annotations applied to created service account
331
annotations: {}
332
# -- Workflow controller name string
333
name: workflow-controller
334
# -- Specify all namespaces where this workflow controller instance will manage
335
# workflows. This controls where the service account and RBAC resources will
336
# be created. Only valid when singleNamespace is false.
337
workflowNamespaces:
338
- default
339
instanceID:
340
# -- Configures the controller to filter workflow submissions
341
# to only those which have a matching instanceID attribute.
342
## NOTE: If `instanceID.enabled` is set to `true` then either `instanceID.userReleaseName`
343
## or `instanceID.explicitID` must be defined.
344
enabled: false
345
# -- Use ReleaseName as instanceID
346
useReleaseName: false
347
# useReleaseName: true
348
349
# -- Use a custom instanceID
350
explicitID: ""
351
# explicitID: unique-argo-controller-identifier
352
logging:
353
# -- Set the logging level (one of: `debug`, `info`, `warn`, `error`)
354
level: info
355
# -- Set the glog logging level
356
globallevel: "0"
357
# -- Set the logging format (one of: `text`, `json`)
358
format: "text"
359
# -- Service type of the controller Service
360
serviceType: ClusterIP
361
# -- Annotations to be applied to the controller Service
362
serviceAnnotations: {}
363
# -- Optional labels to add to the controller Service
364
serviceLabels: {}
365
# -- The class of the load balancer implementation
366
loadBalancerClass: ""
367
# -- Source ranges to allow access to service from. Only applies to service type `LoadBalancer`
368
loadBalancerSourceRanges: []
369
# -- Resource limits and requests for the controller
370
resources: {}
371
# -- Configure liveness [probe] for the controller
372
# @default -- See [values.yaml]
373
livenessProbe:
374
httpGet:
375
port: 6060
376
path: /healthz
377
failureThreshold: 3
378
initialDelaySeconds: 90
379
periodSeconds: 60
380
timeoutSeconds: 30
381
# -- Extra environment variables to provide to the controller container
382
extraEnv: []
383
# - name: FOO
384
# value: "bar"
385
386
# -- envFrom to pass to the controller container
387
envFrom: []
388
# -- Extra arguments to be added to the controller
389
extraArgs: []
390
# -- Additional volume mounts to the controller main container
391
volumeMounts: []
392
# -- Additional volumes to the controller pod
393
volumes: []
394
# -- The number of controller pods to run
395
replicas: 1
396
# -- The number of revisions to keep.
397
revisionHistoryLimit: 10
398
pdb:
399
# -- Configure [Pod Disruption Budget] for the controller pods
400
enabled: false
401
# minAvailable: 1
402
# maxUnavailable: 1
403
# -- [Node selector]
404
nodeSelector:
405
kubernetes.io/os: linux
406
# -- [Tolerations] for use with node taints
407
tolerations: []
408
# -- Assign custom [affinity] rules
409
affinity: {}
410
# -- Assign custom [TopologySpreadConstraints] rules to the workflow controller
411
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
412
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
413
topologySpreadConstraints: []
414
# - maxSkew: 1
415
# topologyKey: topology.kubernetes.io/zone
416
# whenUnsatisfiable: DoNotSchedule
417
418
# -- Leverage a PriorityClass to ensure your pods survive resource shortages.
419
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
420
priorityClassName: ""
421
# -- Configure Argo Server to show custom [links]
422
## Ref: https://argo-workflows.readthedocs.io/en/stable/links/
423
links: []
424
# -- Configure Argo Server to show custom [columns]
425
## Ref: https://github.com/argoproj/argo-workflows/pull/10693
426
columns: []
427
# -- Set ui navigation bar background color
428
navColor: ""
429
clusterWorkflowTemplates:
430
# -- Create a ClusterRole and CRB for the controller to access ClusterWorkflowTemplates.
431
enabled: true
432
# -- Extra service accounts to be added to the ClusterRoleBinding
433
serviceAccounts: []
434
# - name: my-service-account
435
# namespace: my-namespace
436
# -- Extra containers to be added to the controller deployment
437
extraContainers: []
438
# -- Enables init containers to be added to the controller deployment
439
extraInitContainers: []
440
# -- Workflow retention by number of workflows
441
retentionPolicy: {}
442
# completed: 10
443
# failed: 3
444
# errored: 3
445
446
nodeEvents:
447
# -- Enable to emit events on node completion.
448
## This can take up a lot of space in k8s (typically etcd) resulting in errors when trying to create new events:
449
## "Unable to create audit event: etcdserver: mvcc: database space exceeded"
450
enabled: true
451
workflowEvents:
452
# -- Enable to emit events on workflow status changes.
453
## This can take up a lot of space in k8s (typically etcd), resulting in errors when trying to create new events:
454
## "Unable to create audit event: etcdserver: mvcc: database space exceeded"
455
enabled: true
456
# -- Configure when workflow controller runs in a different k8s cluster with the workflow workloads,
457
# or needs to communicate with the k8s apiserver using an out-of-cluster kubeconfig secret.
458
# @default -- `{}` (See [values.yaml])
459
kubeConfig: {}
460
# # name of the kubeconfig secret, may not be empty when kubeConfig specified
461
# secretName: kubeconfig-secret
462
# # key of the kubeconfig secret, may not be empty when kubeConfig specified
463
# secretKey: kubeconfig
464
# # mounting path of the kubeconfig secret, default to /kube/config
465
# mountPath: /kubeconfig/mount/path
466
# # volume name when mounting the secret, default to kubeconfig
467
# volumeName: kube-config-volume
468
469
# -- Specifies the duration in seconds before a terminating pod is forcefully killed. A zero value indicates that the pod will be forcefully terminated immediately.
470
# @default -- `30` seconds (Kubernetes default)
471
podGCGracePeriodSeconds:
472
# -- The duration in seconds before the pods in the GC queue get deleted. A zero value indicates that the pods will be deleted immediately.
473
# @default -- `5s` (Argo Workflows default)
474
podGCDeleteDelayDuration: ""
475
# -- enable Synchronization to use a database. Postgres and MySQL (>= 5.7.8) are available.
476
## Ref: https://argo-workflows.readthedocs.io/en/latest/workflow-controller-configmap/#syncconfig
477
synchronization: {}
478
# controllerName: argo-workflows
479
# connectionPool:
480
# maxIdleConns: 100
481
# maxOpenConns: 0
482
# postgresql:
483
# host: localhost
484
# port: 5432
485
# database: postgres
486
# tableName: argo_workflows
487
# # the database secrets must be in the same namespace of the controller
488
# userNameSecret:
489
# name: argo-postgres-config
490
# key: username
491
# passwordSecret:
492
# name: argo-postgres-config
493
# key: password
494
# ssl: true
495
# # sslMode must be one of: disable, require, verify-ca, verify-full
496
# # you can find more information about those ssl options here: https://godoc.org/github.com/lib/pq
497
# sslMode: require
498
# mysql:
499
# host: localhost
500
# port: 3306
501
# database: argo
502
# tableName: argo_workflows
503
# userNameSecret:
504
# name: argo-mysql-config
505
# key: username
506
# passwordSecret:
507
# name: argo-mysql-config
508
# key: password
509
510
failedPodRestart:
511
# -- Enable to restart of pods that fail before entering Running state.
512
## This is useful for recovering from transient infrastructure issues like node eviction due to DiskPressure or MemoryPressure without requiring a retryStrategy on every template.
513
## ref: https://argo-workflows.readthedocs.io/en/latest/pod-restarts/
514
enabled: false
515
# -- Maximum number of automatic restarts per node before giving up.
516
maxRestarts: 3
517
# -- Disable the creation of agent pods, which are used for HTTP and Plugin templates. When enabled, HTTP and Plugin templates will not be processed by this controller.
518
# Only valid for 4.1+
519
disableAgentPodCreation: false
520
initlessPod:
521
# -- Enable the init-less pod layout (beta), which provides the executor to workflow pods through an image volume instead of an init container.
522
# Only valid for 4.1+. Requires the `ImageVolume` feature gate on the kube-apiserver and all kubelets (beta in Kubernetes v1.33-1.35, enabled by default from v1.36).
523
## Ref: https://argo-workflows.readthedocs.io/en/latest/initless-pod/
524
enabled: false
525
# mainContainer adds default config for main container that could be overriden in workflows template
526
mainContainer:
527
# -- imagePullPolicy to apply to Workflow main container. Defaults to `.Values.images.pullPolicy`.
528
imagePullPolicy: ""
529
# -- Resource limits and requests for the Workflow main container
530
resources: {}
531
# -- Adds environment variables for the Workflow main container
532
env: []
533
# -- Adds reference environment variables for the Workflow main container
534
envFrom: []
535
# -- sets security context for the Workflow main container
536
securityContext: {}
537
# executor controls how the init and wait container should be customized
538
executor:
539
image:
540
# -- Registry to use for the Workflow Executors
541
registry: cgr.dev
542
# -- Repository to use for the Workflow Executors
543
repository: chainguard-private/argo-exec
544
# -- Image tag for the workflow executor. Defaults to `.Values.images.tag`.
545
tag: 4.1.6-r0@sha256:703fe84540821a4dab6d83cf3d20896c8271abd3a93814f2587bb2b2cb6dbc6f
546
# -- Image PullPolicy to use for the Workflow Executors. Defaults to `.Values.images.pullPolicy`.
547
pullPolicy: ""
548
# -- Use the `-nonroot` executor image variant. When enabled, the `-nonroot` suffix is appended to the resolved image tag.
549
nonroot: false
550
# -- Resource limits and requests for the Workflow Executors
551
resources: {}
552
# -- Passes arguments to the executor processes
553
args: []
554
# -- Adds environment variables for the executor.
555
env: []
556
# -- sets security context for the executor container
557
securityContext: {}
558
server:
559
# -- Deploy the Argo Server
560
enabled: true
561
# -- Value for base href in index.html. Used if the server is running behind reverse proxy under subpath different from /.
562
## only updates base url of resources on client side,
563
## it's expected that a proxy server rewrites the request URL and gets rid of this prefix
564
## https://github.com/argoproj/argo-workflows/issues/716#issuecomment-433213190
565
baseHref: /
566
image:
567
# -- Registry to use for the server
568
registry: cgr.dev
569
# -- Repository to use for the server
570
repository: chainguard-private/argo-cli
571
# -- Image tag for the Argo Workflows server. Defaults to `.Values.images.tag`.
572
tag: 4.1.6-r0@sha256:8fb20963df9e35bed5f1158e943125f5adfd3615e7bd228cf4adce7939a6aa14
573
# -- optional map of annotations to be applied to the ui Deployment
574
deploymentAnnotations: {}
575
# -- optional map of annotations to be applied to the ui Pods
576
podAnnotations: {}
577
# -- Optional labels to add to the UI pods
578
podLabels: {}
579
# -- SecurityContext to set on the server pods
580
podSecurityContext: {}
581
# -- [DNS configuration](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config) for server pods
582
dnsConfig: {}
583
# -- Alternative DNS policy for server pods
584
dnsPolicy: ""
585
rbac:
586
# -- Adds Role and RoleBinding for the server.
587
create: true
588
# -- Servers container-level security context
589
securityContext:
590
readOnlyRootFilesystem: false
591
runAsNonRoot: true
592
allowPrivilegeEscalation: false
593
capabilities:
594
drop:
595
- ALL
596
# -- Server name string
597
name: server
598
# -- Service type for server pods
599
serviceType: ClusterIP
600
# -- Service port for server
601
servicePort: 2746
602
# -- Service target port for server
603
serviceTargetPort: 2746
604
# -- Service node port
605
serviceNodePort: # 32746
606
# -- Service port name
607
servicePortName: "" # http
608
# -- Mapping between IP and hostnames that will be injected as entries in the pod's hosts files
609
hostAliases: []
610
# - ip: 10.20.30.40
611
# hostnames:
612
# - git.myhostname
613
614
serviceAccount:
615
# -- Create a service account for the server
616
create: true
617
# -- Service account name
618
name: ""
619
# -- Labels applied to created service account
620
labels: {}
621
# -- Annotations applied to created service account
622
annotations: {}
623
# -- Annotations to be applied to the UI Service
624
serviceAnnotations: {}
625
# -- Optional labels to add to the UI Service
626
serviceLabels: {}
627
# -- The class of the load balancer implementation
628
loadBalancerClass: ""
629
# -- Static IP address to assign to loadBalancer service type `LoadBalancer`
630
loadBalancerIP: ""
631
# -- Source ranges to allow access to service from. Only applies to service type `LoadBalancer`
632
loadBalancerSourceRanges: []
633
# -- Resource limits and requests for the server
634
resources: {}
635
# -- The number of server pods to run
636
replicas: 1
637
# -- The number of revisions to keep.
638
revisionHistoryLimit: 10
639
## Argo Server Horizontal Pod Autoscaler
640
autoscaling:
641
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo Server
642
enabled: false
643
# -- Minimum number of replicas for the Argo Server [HPA]
644
minReplicas: 1
645
# -- Maximum number of replicas for the Argo Server [HPA]
646
maxReplicas: 5
647
# -- Average CPU utilization percentage for the Argo Server [HPA]
648
targetCPUUtilizationPercentage: 50
649
# -- Average memory utilization percentage for the Argo Server [HPA]
650
targetMemoryUtilizationPercentage: 50
651
# -- Configures the scaling behavior of the target in both Up and Down directions.
652
# This is only available on HPA apiVersion `autoscaling/v2beta2` and newer
653
behavior: {}
654
# scaleDown:
655
# stabilizationWindowSeconds: 300
656
# policies:
657
# - type: Pods
658
# value: 1
659
# periodSeconds: 180
660
# scaleUp:
661
# stabilizationWindowSeconds: 300
662
# policies:
663
# - type: Pods
664
# value: 2
665
pdb:
666
# -- Configure [Pod Disruption Budget] for the server pods
667
enabled: false
668
# minAvailable: 1
669
# maxUnavailable: 1
670
# -- [Node selector]
671
nodeSelector:
672
kubernetes.io/os: linux
673
# -- [Tolerations] for use with node taints
674
tolerations: []
675
# -- Assign custom [affinity] rules
676
affinity: {}
677
# -- Assign custom [TopologySpreadConstraints] rules to the argo server
678
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
679
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
680
topologySpreadConstraints: []
681
# - maxSkew: 1
682
# topologyKey: topology.kubernetes.io/zone
683
# whenUnsatisfiable: DoNotSchedule
684
685
# -- Leverage a PriorityClass to ensure your pods survive resource shortages
686
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
687
priorityClassName: ""
688
# -- Run the argo server in "secure" mode. Configure this value instead of `--secure` in extraArgs.
689
## See the following documentation for more details on secure mode:
690
## https://argo-workflows.readthedocs.io/en/stable/tls/
691
secure: false
692
# -- Extra environment variables to provide to the argo-server container
693
extraEnv: []
694
# - name: FOO
695
# value: "bar"
696
697
# -- envFrom to pass to the argo-server container
698
envFrom: []
699
# -- Deprecated; use server.authModes instead.
700
authMode: ""
701
# -- A list of supported authentication modes. Available values are `server`, `client`, or `sso`. If you provide sso, please configure `.Values.server.sso` as well.
702
## Ref: https://argo-workflows.readthedocs.io/en/stable/argo-server-auth-mode/
703
authModes: []
704
# -- Extra arguments to provide to the Argo server binary.
705
## Ref: https://argo-workflows.readthedocs.io/en/stable/argo-server/#options
706
extraArgs: []
707
logging:
708
# -- Set the logging level (one of: `debug`, `info`, `warn`, `error`)
709
level: info
710
# -- Set the glog logging level
711
globallevel: "0"
712
# -- Set the logging format (one of: `text`, `json`)
713
format: "text"
714
# -- Volume to be mounted in Pods for temporary files.
715
tmpVolume:
716
emptyDir: {}
717
# -- Additional volume mounts to the server main container.
718
volumeMounts: []
719
# -- Additional volumes to the server pod.
720
volumes: []
721
## Ingress configuration.
722
# ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
723
ingress:
724
# -- Enable an ingress resource
725
enabled: false
726
# -- Additional ingress annotations
727
annotations: {}
728
# -- Additional ingress labels
729
labels: {}
730
# -- Defines which ingress controller will implement the resource
731
ingressClassName: ""
732
# -- List of ingress hosts
733
## Hostnames must be provided if Ingress is enabled.
734
## Secrets must be manually created in the namespace
735
hosts: []
736
# - argoworkflows.example.com
737
738
# -- List of ingress paths
739
paths:
740
- /
741
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
742
pathType: Prefix
743
# -- Additional ingress paths
744
extraPaths: []
745
# - path: /*
746
# backend:
747
# serviceName: ssl-redirect
748
# servicePort: use-annotation
749
## for Kubernetes >=1.19 (when "networking.k8s.io/v1" is used)
750
# - path: /*
751
# pathType: Prefix
752
# backend:
753
# service
754
# name: ssl-redirect
755
# port:
756
# name: use-annotation
757
758
# -- Ingress TLS configuration
759
tls: []
760
# - secretName: argoworkflows-example-tls
761
# hosts:
762
# - argoworkflows.example.com
763
## Create a Google Backendconfig for use with the GKE Ingress Controller
764
## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#configuring_ingress_features_through_backendconfig_parameters
765
GKEbackendConfig:
766
# -- Enable BackendConfig custom resource for Google Kubernetes Engine
767
enabled: false
768
# -- [BackendConfigSpec]
769
spec: {}
770
# spec:
771
# iap:
772
# enabled: true
773
# oauthclientCredentials:
774
# secretName: argoworkflows-secret
775
776
## Create a Google Managed Certificate for use with the GKE Ingress Controller
777
## https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs
778
GKEmanagedCertificate:
779
# -- Enable ManagedCertificate custom resource for Google Kubernetes Engine.
780
enabled: false
781
# -- Domains for the Google Managed Certificate
782
domains:
783
- argoworkflows.example.com
784
## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller
785
## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
786
GKEfrontendConfig:
787
# -- Enable FrontConfig custom resource for Google Kubernetes Engine
788
enabled: false
789
# -- [FrontendConfigSpec]
790
spec: {}
791
# spec:
792
# redirectToHttps:
793
# enabled: true
794
# responseCodeName: RESPONSE_CODE
795
796
# Gateway API HTTPRoute configuration
797
# NOTE: Gateway API support is in EXPERIMENTAL status
798
# Support depends on your Gateway controller implementation
799
# Some controllers may require additional configuration (e.g., BackendTLSPolicy for HTTPS backends)
800
# Refer to https://gateway-api.sigs.k8s.io/implementations/ for controller-specific details
801
httproute:
802
# -- Enable HTTPRoute resource for Argo Workflows server (Gateway API)
803
enabled: false
804
# -- Additional HTTPRoute labels
805
labels: {}
806
# -- Additional HTTPRoute annotations
807
annotations: {}
808
# -- Gateway API parentRefs for the HTTPRoute
809
## Must reference an existing Gateway
810
# @default -- `[]` (See [values.yaml])
811
parentRefs: []
812
# - name: example-gateway
813
# namespace: example-gateway-namespace
814
# sectionName: https
815
# -- List of hostnames for the HTTPRoute
816
# @default -- `[]` (See [values.yaml])
817
hostnames: []
818
# - argoworkflows.example.com
819
# -- HTTPRoute rules configuration
820
# @default -- `[]` (See [values.yaml])
821
rules:
822
- matches:
823
- path:
824
type: PathPrefix
825
value: /
826
# filters: []
827
# - type: RequestHeaderModifier
828
# requestHeaderModifier:
829
# add:
830
# - name: X-Custom-Header
831
# value: custom-value
832
# timeouts:
833
# request: 10s
834
# backendRequest: 2s
835
# Gateway API BackendTLSPolicy configuration
836
# NOTE: BackendTLSPolicy support is in EXPERIMENTAL status
837
# Required for HTTPS backends when using Gateway API
838
# Not all Gateway controllers support this resource (e.g., Cilium does not support it yet)
839
backendTLSPolicy:
840
# -- Enable BackendTLSPolicy resource for Argo Workflows server (Gateway API)
841
enabled: false
842
# -- Additional BackendTLSPolicy labels
843
labels: {}
844
# -- Additional BackendTLSPolicy annotations
845
annotations: {}
846
# -- Target references for the BackendTLSPolicy
847
# @default -- `[]` (See [values.yaml])
848
targetRefs: []
849
# - group: ""
850
# kind: Service
851
# name: argo-workflows-server
852
# sectionName: https
853
# -- TLS validation configuration
854
# @default -- `{}` (See [values.yaml])
855
validation: {}
856
# hostname: argo-workflows-server.argo.svc.cluster.local
857
# caCertificateRefs:
858
# - name: example-ca-cert
859
# group: ""
860
# kind: ConfigMap
861
# wellKnownCACertificates: System
862
clusterWorkflowTemplates:
863
# -- Create a ClusterRole and CRB for the server to access ClusterWorkflowTemplates.
864
enabled: true
865
# -- Give the server permissions to edit ClusterWorkflowTemplates.
866
enableEditing: true
867
# SSO configuration when SSO is specified as a server auth mode.
868
sso:
869
# -- Create SSO configuration. If you set `true` , please also set `.Values.server.authModes` as `sso`.
870
enabled: false
871
# -- The root URL of the OIDC identity provider
872
issuer: https://accounts.google.com
873
clientId:
874
# -- Name of secret to retrieve the app OIDC client ID
875
name: argo-server-sso
876
# -- Key of secret to retrieve the app OIDC client ID
877
key: client-id
878
clientSecret:
879
# -- Name of a secret to retrieve the app OIDC client secret
880
name: argo-server-sso
881
# -- Key of a secret to retrieve the app OIDC client secret
882
key: client-secret
883
# -- The OIDC redirect URL. Should be in the form <argo-root-url>/oauth2/callback.
884
redirectUrl: ""
885
rbac:
886
# -- Adds ServiceAccount Policy to server (Cluster)Role.
887
enabled: true
888
# -- Whitelist to allow server to fetch Secrets
889
## When present, restricts secrets the server can read to a given list.
890
## You can use it to restrict the server to only be able to access the
891
## service account token secrets that are associated with service accounts
892
## used for authorization.
893
secretWhitelist: []
894
# -- Scopes requested from the SSO ID provider
895
## The 'groups' scope requests group membership information, which is usually used for authorization decisions.
896
scopes: []
897
# - groups
898
# -- Define how long your login is valid for (in hours)
899
## If omitted, defaults to 10h.
900
sessionExpiry: ""
901
# -- Alternate root URLs that can be included for some OIDC providers
902
issuerAlias: ""
903
# -- Override claim name for OIDC groups
904
customGroupClaimName: ""
905
# -- Specify the user info endpoint that contains the groups claim
906
## Configure this if your OIDC provider provides groups information only using the user-info endpoint (e.g. Okta)
907
userInfoPath: ""
908
# -- Skip TLS verification for the HTTP client
909
insecureSkipVerify: false
910
# -- Custom PEM encoded CA certificate file contents used to validate the OIDC provider's certificate
911
rootCA: ""
912
# -- Filter the groups returned by the OIDC provider
913
## A logical "OR" is used between each regex in the list
914
filterGroupsRegex: []
915
# - ".*argo-wf.*"
916
# - ".*argo-workflow.*"
917
# -- Extra containers to be added to the server deployment
918
extraContainers: []
919
# -- Enables init containers to be added to the server deployment
920
extraInitContainers: []
921
# -- Specify postStart and preStop lifecycle hooks for server container
922
lifecycle: {}
923
# -- terminationGracePeriodSeconds for container lifecycle hook
924
terminationGracePeriodSeconds: 30
925
## livenessProbe for server
926
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
927
livenessProbe:
928
# -- Enable Kubernetes liveness probe for server
929
enabled: false
930
httpGet:
931
# -- Http port to use for the liveness probe
932
port: 2746
933
# -- Http path to use for the liveness probe
934
path: /
935
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
936
failureThreshold: 3
937
# -- Number of seconds after the container has started before [probe] is initiated
938
initialDelaySeconds: 10
939
# -- How often (in seconds) to perform the [probe]
940
periodSeconds: 10
941
# -- Number of seconds after which the [probe] times out
942
timeoutSeconds: 1
943
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
944
successThreshold: 1
945
# -- Array of extra K8s manifests to deploy
946
extraObjects: []
947
# - apiVersion: secrets-store.csi.x-k8s.io/v1
948
# kind: SecretProviderClass
949
# metadata:
950
# name: argo-server-sso
951
# spec:
952
# provider: aws
953
# parameters:
954
# objects: |
955
# - objectName: "argo/server/sso"
956
# objectType: "secretsmanager"
957
# jmesPath:
958
# - path: "client_id"
959
# objectAlias: "client_id"
960
# - path: "client_secret"
961
# objectAlias: "client_secret"
962
# secretObjects:
963
# - data:
964
# - key: client_id
965
# objectName: client_id
966
# - key: client_secret
967
# objectName: client_secret
968
# secretName: argo-server-sso-secrets-store
969
# type: Opaque
970
971
# -- Use static credentials for S3 (eg. when not using AWS IRSA)
972
useStaticCredentials: true
973
artifactRepository:
974
# -- Archive the main container logs as an artifact
975
archiveLogs: false
976
# -- Store artifact in a S3-compliant object store
977
# @default -- See [values.yaml]
978
s3: {}
979
# # Note the `key` attribute is not the actual secret, it's the PATH to
980
# # the contents in the associated secret, as defined by the `name` attribute.
981
# accessKeySecret:
982
# name: "{{ .Release.Name }}-minio"
983
# key: accesskey
984
# secretKeySecret:
985
# name: "{{ .Release.Name }}-minio"
986
# key: secretkey
987
# sessionTokenSecret:
988
# name: "{{ .Release.Name }}-minio"
989
# key: sessionToken
990
# # insecure will disable TLS. Primarily used for minio installs not configured with TLS
991
# insecure: false
992
# caSecret:
993
# name: ca-root
994
# key: cert.pem
995
# bucket:
996
# endpoint:
997
# region:
998
# roleARN:
999
# useSDKCreds: true
1000
# # addressingStyle must be one of: "" (auto-detect), path, virtual-hosted
1001
# # Only valid for 4.1+
1002
# addressingStyle: ""
1003
# encryptionOptions:
1004
# enableEncryption: true
1005
# -- Store artifact in a GCS object store
1006
# @default -- `{}` (See [values.yaml])
1007
gcs: {}
1008
# bucket: <project>-argo
1009
# keyFormat: "{{ \"{{workflow.namespace}}/{{workflow.name}}/{{pod.name}}\" }}"
1010
# # serviceAccountKeySecret is a secret selector.
1011
# # It references the k8s secret named 'my-gcs-credentials'.
1012
# # This secret is expected to have the key 'serviceAccountKey',
1013
# # containing the base64 encoded credentials
1014
# # to the bucket.
1015
# #
1016
# # If it's running on GKE and Workload Identity is used,
1017
# # serviceAccountKeySecret is not needed.
1018
# serviceAccountKeySecret:
1019
# name: my-gcs-credentials
1020
# key: serviceAccountKey
1021
# -- Store artifact in Azure Blob Storage
1022
# @default -- `{}` (See [values.yaml])
1023
azure: {}
1024
# endpoint: https://mystorageaccountname.blob.core.windows.net
1025
# container: my-container-name
1026
# blobNameFormat: path/in/container
1027
# # accountKeySecret is a secret selector.
1028
# # It references the k8s secret named 'my-azure-storage-credentials'.
1029
# # This secret is expected to have the key 'account-access-key',
1030
# # containing the base64 encoded credentials to the storage account.
1031
# # If a managed identity has been assigned to the machines running the
1032
# # workflow (e.g., https://docs.microsoft.com/en-us/azure/aks/use-managed-identity)
1033
# # then accountKeySecret is not needed, and useSDKCreds should be
1034
# # set to true instead:
1035
# useSDKCreds: true
1036
# accountKeySecret:
1037
# name: my-azure-storage-credentials
1038
# key: account-access-key
1039
# -- The section of custom artifact repository.
1040
# Utilize a custom artifact repository that is not one of the current base ones (s3, gcs, azure)
1041
customArtifactRepository: {}
1042
# artifactory:
1043
# repoUrl: https://artifactory.example.com/raw
1044
# usernameSecret:
1045
# name: artifactory-creds
1046
# key: username
1047
# passwordSecret:
1048
# name: artifactory-creds
1049
# key: password
1050
1051
# -- The section of [artifact repository ref](https://argo-workflows.readthedocs.io/en/stable/artifact-repository-ref/).
1052
# Each map key is the name of configmap
1053
# @default -- `{}` (See [values.yaml])
1054
artifactRepositoryRef: {}
1055
# # -- 1st ConfigMap
1056
# # If you want to use this config map by default, name it "artifact-repositories".
1057
# # Otherwise, you can provide a reference to a
1058
# # different config map in `artifactRepositoryRef.configMap`.
1059
# artifact-repositories:
1060
# # -- v3.0 and after - if you want to use a specific key, put that key into this annotation.
1061
# annotations:
1062
# workflows.argoproj.io/default-artifact-repository: default-v1-s3-artifact-repository
1063
# # 1st data of configmap. See above artifactRepository or customArtifactRepository.
1064
# default-v1-s3-artifact-repository:
1065
# archiveLogs: false
1066
# s3:
1067
# bucket: my-bucket
1068
# endpoint: minio:9000
1069
# insecure: true
1070
# accessKeySecret:
1071
# name: my-minio-cred
1072
# key: accesskey
1073
# secretKeySecret:
1074
# name: my-minio-cred
1075
# key: secretkey
1076
# # 2nd data
1077
# oss-artifact-repository:
1078
# archiveLogs: false
1079
# oss:
1080
# endpoint: http://oss-cn-zhangjiakou-internal.aliyuncs.com
1081
# bucket: $mybucket
1082
# # accessKeySecret and secretKeySecret are secret selectors.
1083
# # It references the k8s secret named 'bucket-workflow-artifect-credentials'.
1084
# # This secret is expected to have the keys 'accessKey'
1085
# # and 'secretKey', containing the base64 encoded credentials
1086
# # to the bucket.
1087
# accessKeySecret:
1088
# name: $mybucket-credentials
1089
# key: accessKey
1090
# secretKeySecret:
1091
# name: $mybucket-credentials
1092
# key: secretKey
1093
# # 2nd ConfigMap
1094
# another-artifact-repositories:
1095
# annotations:
1096
# workflows.argoproj.io/default-artifact-repository: gcs
1097
# gcs:
1098
# bucket: my-bucket
1099
# keyFormat: prefix/in/bucket/{{workflow.name}}/{{pod.name}}
1100
# serviceAccountKeySecret:
1101
# name: my-gcs-credentials
1102
# key: serviceAccountKey
1103
1104
emissary:
1105
# -- The command/args for each image on workflow, needed when the command is not specified and the emissary executor is used.
1106
## See more: https://argo-workflows.readthedocs.io/en/stable/workflow-executors/#emissary-emissary
1107
images: []
1108
# argoproj/argosay:v2:
1109
# cmd: [/argosay]
1110
# docker/whalesay:latest:
1111
# cmd: [/bin/bash]
1112

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.