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

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.