DirectorySecurity AdvisoriesPricing
Sign in
Directory
argo-cd logoHELM

argo-cd

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
## Argo CD configuration
2
## Ref: https://github.com/argoproj/argo-cd
3
##
4
5
# -- Provide a name in place of `argocd`
6
nameOverride: argocd
7
# -- String to fully override `"argo-cd.fullname"`
8
fullnameOverride: ""
9
# -- Override the namespace
10
# @default -- `.Release.Namespace`
11
namespaceOverride: ""
12
# -- Override the Kubernetes version, which is used to evaluate certain manifests
13
kubeVersionOverride: ""
14
# Override APIVersions
15
# If you want to template helm charts but cannot access k8s API server
16
# you can set api versions here
17
apiVersionOverrides: {}
18
# -- Create aggregated roles that extend existing cluster roles to interact with argo-cd resources
19
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles
20
createAggregateRoles: false
21
# -- Create cluster roles for cluster-wide installation.
22
## Used when you manage applications in the same cluster where Argo CD runs
23
createClusterRoles: true
24
openshift:
25
# -- enables using arbitrary uid for argo repo server
26
enabled: false
27
## Custom resource configuration
28
crds:
29
# -- Install and upgrade CRDs
30
install: true
31
# -- Keep CRDs on chart uninstall
32
keep: true
33
# -- Annotations to be added to all CRDs
34
annotations:
35
argocd.argoproj.io/sync-options: ServerSideApply=true
36
# -- Additional labels to be added to all CRDs
37
additionalLabels: {}
38
## Globally shared configuration
39
global:
40
# -- Default domain used by all components
41
## Used for ingresses, certificates, SSO, notifications, etc.
42
domain: argocd.example.com
43
# -- Runtime class name for all components
44
runtimeClassName: ""
45
# -- Common labels for the all resources
46
additionalLabels: {}
47
# app: argo-cd
48
49
# -- Number of old deployment ReplicaSets to retain. The rest will be garbage collected.
50
revisionHistoryLimit: 3
51
# Default image used by all components
52
image:
53
# -- If defined, a repository applied to all Argo CD deployments
54
repository: cgr.dev/chainguard-private/argocd
55
# -- Overrides the global Argo CD image tag whose default is the chart appVersion
56
tag: 3.5.5-r2@sha256:9def9ce76d512edc40241957b7170934be84f8638cf82851c233b635a91ccd4f
57
# -- If defined, a imagePullPolicy applied to all Argo CD deployments
58
imagePullPolicy: IfNotPresent
59
# -- Secrets with credentials to pull images from a private registry
60
imagePullSecrets: []
61
# Default logging options used by all components
62
logging:
63
# -- Set the global logging format. Either: `text` or `json`
64
format: text
65
# -- Set the global logging level. One of: `debug`, `info`, `warn` or `error`
66
level: info
67
# -- Annotations for the all deployed Statefulsets
68
statefulsetAnnotations: {}
69
# -- Labels for the all deployed Statefulsets
70
statefulsetLabels: {}
71
# -- Annotations for the all deployed Deployments
72
deploymentAnnotations: {}
73
# -- Labels for the all deployed Deployments
74
deploymentLabels: {}
75
# -- Annotations for the all deployed pods
76
podAnnotations: {}
77
# -- Labels for the all deployed pods
78
podLabels: {}
79
# -- Add Prometheus scrape annotations to all metrics services. This can be used as an alternative to the ServiceMonitors.
80
addPrometheusAnnotations: false
81
# -- Toggle and define pod-level security context.
82
# @default -- `{}` (See [values.yaml])
83
securityContext: {}
84
# runAsUser: 999
85
# runAsGroup: 999
86
# fsGroup: 999
87
88
# -- Mapping between IP and hostnames that will be injected as entries in the pod's hosts files
89
hostAliases: []
90
# - ip: 10.20.30.40
91
# hostnames:
92
# - git.myhostname
93
94
# Configure dual-stack used by all component services
95
dualStack:
96
# -- IP family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
97
ipFamilyPolicy: ""
98
# -- IP families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
99
ipFamilies: []
100
# Default network policy rules used by all components
101
networkPolicy:
102
# -- Create NetworkPolicy objects for all components
103
create: true
104
# -- Default deny all ingress traffic
105
defaultDenyIngress: false
106
# -- Default priority class for all components
107
priorityClassName: ""
108
# -- Default node selector for all components
109
nodeSelector:
110
kubernetes.io/os: linux
111
# -- Default tolerations for all components
112
tolerations: []
113
# Default affinity preset for all components
114
affinity:
115
# -- Default pod anti-affinity rules. Either: `none`, `soft` or `hard`
116
podAntiAffinity: soft
117
# Node affinity rules
118
nodeAffinity:
119
# -- Default node affinity rules. Either: `none`, `soft` or `hard`
120
type: hard
121
# -- Default match expressions for node affinity
122
matchExpressions: []
123
# - key: topology.kubernetes.io/zone
124
# operator: In
125
# values:
126
# - antarctica-east1
127
# - antarctica-west1
128
# -- Default [TopologySpreadConstraints] rules for all components
129
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
130
## If labelSelector is left out, it will default to the labelSelector of the component
131
topologySpreadConstraints: []
132
# - maxSkew: 1
133
# topologyKey: topology.kubernetes.io/zone
134
# whenUnsatisfiable: DoNotSchedule
135
136
# -- Deployment strategy for the all deployed Deployments
137
deploymentStrategy: {}
138
# type: RollingUpdate
139
# rollingUpdate:
140
# maxSurge: 25%
141
# maxUnavailable: 25%
142
143
# -- Environment variables to pass to all deployed Deployments
144
env: []
145
# -- Extra volumes to add to all deployed Deployments and StatefulSets
146
extraVolumes: []
147
# Example of adding a custom CA bundle from a ConfigMap:
148
# - name: my-root-ca
149
# configMap:
150
# name: my-trustbundle
151
# items:
152
# - key: bundle.pem
153
# path: ca-certificates.crt
154
155
# -- Extra volume mounts to add to all deployed Deployments and StatefulSets
156
extraVolumeMounts: []
157
# Example of adding a custom CA bundle mount:
158
# - name: my-root-ca
159
# mountPath: /etc/ssl/certs
160
161
# -- Annotations for the all deployed Certificates
162
certificateAnnotations: {}
163
## Argo Configs
164
configs:
165
# General Argo CD configuration. Any values you put under `.configs.cm` are passed to argocd-cm ConfigMap.
166
## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/argocd-cm.yaml
167
cm:
168
# -- Create the argocd-cm configmap for [declarative setup]
169
create: true
170
# -- Annotations to be added to argocd-cm configmap
171
annotations: {}
172
# -- The name of tracking label used by Argo CD for resource pruning
173
application.instanceLabelKey: argocd.argoproj.io/instance
174
# -- Enable control of the service account used for the sync operation (alpha)
175
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/app-sync-using-impersonation/
176
application.sync.impersonation.enabled: false
177
# -- Enable exec feature in Argo UI
178
## Ref: https://argo-cd.readthedocs.io/en/latest/operator-manual/rbac/#exec-resource
179
exec.enabled: false
180
# -- Enable local admin user
181
## Ref: https://argo-cd.readthedocs.io/en/latest/faq/#how-to-disable-admin-user
182
admin.enabled: true
183
# -- Timeout to discover if a new manifests version got published to the repository
184
timeout.reconciliation: 120s
185
# -- Maximum jitter added to the reconciliation timeout to spread out refreshes and reduce repo-server load
186
timeout.reconciliation.jitter: 60s
187
# -- Timeout to refresh application data as well as target manifests cache
188
timeout.hard.reconciliation: 0s
189
# -- Enable Status Badge
190
## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/status-badge/
191
statusbadge.enabled: false
192
# Dex configuration
193
# dex.config: |
194
# connectors:
195
# # GitHub example
196
# - type: github
197
# id: github
198
# name: GitHub
199
# config:
200
# clientID: aabbccddeeff00112233
201
# clientSecret: $dex.github.clientSecret # Alternatively $<some_K8S_secret>:dex.github.clientSecret
202
# orgs:
203
# - name: your-github-org
204
205
# OIDC configuration as an alternative to dex (optional).
206
# oidc.config: |
207
# name: AzureAD
208
# issuer: https://login.microsoftonline.com/TENANT_ID/v2.0
209
# clientID: aaaabbbbccccddddeee
210
# clientSecret: $oidc.azuread.clientSecret
211
# # Optional: set to true to use Azure Workload Identity instead of clientSecret
212
# azure:
213
# useWorkloadIdentity: false
214
215
# Some OIDC providers require a separate clientID for different callback URLs.
216
# For example, if configuring Argo CD with self-hosted Dex, you will need a separate client ID
217
# for the 'localhost' (CLI) client to Dex. This field is optional. If omitted, the CLI will
218
# use the same clientID as the Argo CD server
219
# cliClientID: vvvvwwwwxxxxyyyyzzzz
220
221
# rootCA: |
222
# -----BEGIN CERTIFICATE-----
223
# ... encoded certificate data here ...
224
# -----END CERTIFICATE-----
225
226
# Optional list of allowed aud claims. If omitted or empty, defaults to the clientID value above (and the
227
# cliClientID, if that is also specified). If you specify a list and want the clientID to be allowed, you must
228
# explicitly include it in the list.
229
# Token verification will pass if any of the token's audiences matches any of the audiences in this list.
230
# allowedAudiences:
231
# - aaaabbbbccccddddeee
232
# - qqqqwwwweeeerrrrttt
233
234
# Optional set of OIDC claims to request on the ID token.
235
# requestedIDTokenClaims:
236
# groups:
237
# essential: true
238
239
# Optional set of OIDC scopes to request. If omitted, defaults to: ["openid", "profile", "email", "groups"]
240
# requestedScopes:
241
# - openid
242
# - profile
243
# - email
244
245
# PKCE authentication flow processes authorization flow from browser only - default false
246
# uses the clientID
247
# make sure the Identity Provider (IdP) is public and doesn't need clientSecret
248
# make sure the Identity Provider (IdP) has this redirect URI registered: https://argocd.example.com/pkce/verify
249
# enablePKCEAuthentication: true
250
251
# Extension Configuration
252
## Ref: https://argo-cd.readthedocs.io/en/latest/developer-guide/extensions/proxy-extensions/
253
# extension.config: |
254
# extensions:
255
# - name: httpbin
256
# backend:
257
# connectionTimeout: 2s
258
# keepAlive: 15s
259
# idleConnectionTimeout: 60s
260
# maxIdleConnections: 30
261
# services:
262
# - url: http://httpbin.org
263
# headers:
264
# - name: some-header
265
# value: '$some.argocd.secret.key'
266
# cluster:
267
# name: some-cluster
268
# server: https://some-cluster
269
270
## Default configuration for ignoreResourceUpdates.
271
## The ignoreResourceUpdates list contains K8s resource's properties that are known to be frequently updated
272
## by controllers and operators. These resources, when watched by argo, will cause many unnecessary updates.
273
274
# -- Ignoring status for all resources. An update will still be sent if the status update causes the health to change.
275
# @default -- See [values.yaml]
276
resource.customizations.ignoreResourceUpdates.all: |
277
jsonPointers:
278
- /status
279
# -- Some Application fields are generated and not related to the application updates itself
280
## The Application itself is already watched by the controller lister, but this configuration is applied for apps of apps
281
# @default -- See [values.yaml]
282
resource.customizations.ignoreResourceUpdates.argoproj.io_Application: |
283
jqPathExpressions:
284
- '.metadata.annotations."notified.notifications.argoproj.io"'
285
- '.metadata.annotations."argocd.argoproj.io/refresh"'
286
- '.metadata.annotations."argocd.argoproj.io/hydrate"'
287
- '.operation'
288
# -- Ignore Argo Rollouts generated fields
289
# @default -- See [values.yaml]
290
resource.customizations.ignoreResourceUpdates.argoproj.io_Rollout: |
291
jqPathExpressions:
292
- '.metadata.annotations."notified.notifications.argoproj.io"'
293
# -- Legacy annotations used on HPA autoscaling/v1
294
# @default -- See [values.yaml]
295
resource.customizations.ignoreResourceUpdates.autoscaling_HorizontalPodAutoscaler: |
296
jqPathExpressions:
297
- '.metadata.annotations."autoscaling.alpha.kubernetes.io/behavior"'
298
- '.metadata.annotations."autoscaling.alpha.kubernetes.io/conditions"'
299
- '.metadata.annotations."autoscaling.alpha.kubernetes.io/metrics"'
300
- '.metadata.annotations."autoscaling.alpha.kubernetes.io/current-metrics"'
301
# -- Ignore the cluster-autoscaler status
302
# @default -- See [values.yaml]
303
resource.customizations.ignoreResourceUpdates.ConfigMap: |
304
jqPathExpressions:
305
# Ignore the cluster-autoscaler status
306
- '.metadata.annotations."cluster-autoscaler.kubernetes.io/last-updated"'
307
# Ignore the annotation of the legacy Leases election
308
- '.metadata.annotations."control-plane.alpha.kubernetes.io/leader"'
309
# -- Ignore the common scaling annotations
310
# @default -- See [values.yaml]
311
resource.customizations.ignoreResourceUpdates.apps_ReplicaSet: |
312
jqPathExpressions:
313
- '.metadata.annotations."deployment.kubernetes.io/desired-replicas"'
314
- '.metadata.annotations."deployment.kubernetes.io/max-replicas"'
315
- '.metadata.annotations."rollout.argoproj.io/desired-replicas"'
316
# -- Ignores update if EndpointSlice is not excluded globally
317
# @default -- See [values.yaml]
318
resource.customizations.ignoreResourceUpdates.discovery.k8s.io_EndpointSlice: |
319
jsonPointers:
320
- /metadata
321
- /endpoints
322
- /ports
323
# -- Ignores update if Endpoints is not excluded globally
324
# @default -- See [values.yaml]
325
resource.customizations.ignoreResourceUpdates.Endpoints: |
326
jsonPointers:
327
- /metadata
328
- /subsets
329
## Default configuration for exclusions.
330
## The exclusion list are K8s resources that we assume will never be declared in Git,
331
## and are never child objects of managed resources that need to be presented in the resource tree.
332
## This list contains high volume and high churn metadata objects which we exclude for performance
333
## reasons, reducing connections and load to the K8s API servers of managed clusters.
334
335
# -- Resource Exclusion/Inclusion
336
# @default -- See [values.yaml]
337
resource.exclusions: |
338
### Network resources created by the Kubernetes control plane and excluded to reduce the number of watched events and UI clutter
339
- apiGroups:
340
- ''
341
- discovery.k8s.io
342
kinds:
343
- Endpoints
344
- EndpointSlice
345
### Internal Kubernetes resources excluded reduce the number of watched events
346
- apiGroups:
347
- coordination.k8s.io
348
kinds:
349
- Lease
350
### Internal Kubernetes Authz/Authn resources excluded reduce the number of watched events
351
- apiGroups:
352
- authentication.k8s.io
353
- authorization.k8s.io
354
kinds:
355
- SelfSubjectReview
356
- TokenReview
357
- LocalSubjectAccessReview
358
- SelfSubjectAccessReview
359
- SelfSubjectRulesReview
360
- SubjectAccessReview
361
### Intermediate Certificate Request excluded reduce the number of watched events
362
- apiGroups:
363
- certificates.k8s.io
364
kinds:
365
- CertificateSigningRequest
366
- apiGroups:
367
- cert-manager.io
368
kinds:
369
- CertificateRequest
370
### Cilium internal resources excluded reduce the number of watched events and UI Clutter
371
- apiGroups:
372
- cilium.io
373
kinds:
374
- CiliumIdentity
375
- CiliumEndpoint
376
- CiliumEndpointSlice
377
### Kyverno intermediate and reporting resources excluded reduce the number of watched events and improve performance
378
- apiGroups:
379
- kyverno.io
380
- reports.kyverno.io
381
- wgpolicyk8s.io
382
kinds:
383
- PolicyReport
384
- ClusterPolicyReport
385
- EphemeralReport
386
- ClusterEphemeralReport
387
- AdmissionReport
388
- ClusterAdmissionReport
389
- BackgroundScanReport
390
- ClusterBackgroundScanReport
391
- UpdateRequest
392
# -- Additional resource exclusions to append to the default `resource.exclusions` list above,
393
# so that the defaults can be kept up to date without needing to duplicate/override them.
394
# These entries are always appended, never substituted: if you also set `resource.exclusions`
395
# yourself, they are appended to your value rather than to the chart defaults.
396
# @default -- `[]`
397
resourceExclusionsAdditional: []
398
# Argo CD configuration parameters
399
## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/argocd-cmd-params-cm.yaml
400
params:
401
# -- Create the argocd-cmd-params-cm configmap
402
# If false, it is expected the configmap will be created by something else.
403
create: true
404
# -- Annotations to be added to the argocd-cmd-params-cm ConfigMap
405
annotations: {}
406
# You can customize parameters by adding parameters here.
407
# (e.g.)
408
# otlp.address: ''
409
# Argo CD RBAC policy configuration
410
## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/rbac.md
411
rbac:
412
# -- Create the argocd-rbac-cm configmap with ([Argo CD RBAC policy]) definitions.
413
# If false, it is expected the configmap will be created by something else.
414
# Argo CD will not work if there is no configmap created with the name above.
415
create: true
416
# -- Annotations to be added to argocd-rbac-cm configmap
417
annotations: {}
418
# -- The name of the default role which Argo CD will falls back to, when authorizing API requests (optional).
419
# If omitted or empty, users may be still be able to login, but will see no apps, projects, etc...
420
policy.default: ""
421
# -- File containing user-defined policies and role definitions.
422
# @default -- `''` (See [values.yaml])
423
policy.csv: ""
424
# Policy rules are in the form:
425
# p, subject, resource, action, object, effect
426
# Role definitions and bindings are in the form:
427
# g, subject, inherited-subject
428
# policy.csv: |
429
# p, role:org-admin, applications, *, */*, allow
430
# p, role:org-admin, clusters, get, *, allow
431
# p, role:org-admin, repositories, *, *, allow
432
# p, role:org-admin, logs, get, *, allow
433
# p, role:org-admin, exec, create, */*, allow
434
# g, your-github-org:your-team, role:org-admin
435
436
# -- OIDC scopes to examine during rbac enforcement (in addition to `sub` scope).
437
# The scope value can be a string, or a list of strings.
438
scopes: "[groups]"
439
# -- Matcher function for Casbin, `glob` for glob matcher and `regex` for regex matcher.
440
policy.matchMode: "glob"
441
# GnuPG public keys for commit verification
442
## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/gpg-verification/
443
gpg:
444
# -- Annotations to be added to argocd-gpg-keys-cm configmap
445
annotations: {}
446
# -- [GnuPG] public keys to add to the keyring
447
# @default -- `{}` (See [values.yaml])
448
## Note: Public keys should be exported with `gpg --export --armor <KEY>`
449
keys: {}
450
# 4AEE18F83AFDEB23: |
451
# -----BEGIN PGP PUBLIC KEY BLOCK-----
452
# ...
453
# -----END PGP PUBLIC KEY BLOCK-----
454
# SSH known hosts for Git repositories
455
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#ssh-known-host-public-keys
456
ssh:
457
# -- Specifies if the argocd-ssh-known-hosts-cm configmap should be created by Helm.
458
create: true
459
# -- Annotations to be added to argocd-ssh-known-hosts-cm configmap
460
annotations: {}
461
# -- Known hosts to be added to the known host list by default.
462
# @default -- See [values.yaml]
463
knownHosts: |
464
[ssh.github.com]:443 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
465
[ssh.github.com]:443 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
466
[ssh.github.com]:443 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
467
bitbucket.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPIQmuzMBuKdWeF4+a2sjSSpBK0iqitSQ+5BM9KhpexuGt20JpTVM7u5BDZngncgrqDMbWdxMWWOGtZ9UgbqgZE=
468
bitbucket.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO
469
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQeJzhupRu0u0cdegZIa8e86EG2qOCsIsD1Xw0xSeiPDlCr7kq97NLmMbpKTX6Esc30NuoqEEHCuc7yWtwp8dI76EEEB1VqY9QJq6vk+aySyboD5QF61I/1WeTwu+deCbgKMGbUijeXhtfbxSxm6JwGrXrhBdofTsbKRUsrN1WoNgUa8uqN1Vx6WAJw1JHPhglEGGHea6QICwJOAr/6mrui/oB7pkaWKHj3z7d1IC4KWLtY47elvjbaTlkN04Kc/5LFEirorGYVbt15kAUlqGM65pk6ZBxtaO3+30LVlORZkxOh+LKL/BvbZ/iRNhItLqNyieoQj/uh/7Iv4uyH/cV/0b4WDSd3DptigWq84lJubb9t/DnZlrJazxyDCulTmKdOR7vs9gMTo+uoIrPSb8ScTtvw65+odKAlBj59dhnVp9zd7QUojOpXlL62Aw56U4oO+FALuevvMjiWeavKhJqlR7i5n9srYcrNV7ttmDw7kf/97P5zauIhxcjX+xHv4M=
470
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
471
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
472
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
473
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=
474
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
475
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
476
ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
477
vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
478
# -- Additional known hosts for private repositories
479
extraHosts: ""
480
# Repository TLS certificates
481
# Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#repositories-using-self-signed-tls-certificates-or-are-signed-by-custom-ca
482
tls:
483
# -- Annotations to be added to argocd-tls-certs-cm configmap
484
annotations: {}
485
# -- TLS certificates for Git repositories
486
# @default -- `{}` (See [values.yaml])
487
certificates: {}
488
# server.example.com: |
489
# -----BEGIN CERTIFICATE-----
490
# ...
491
# -----END CERTIFICATE-----
492
493
# -- Specifies if the argocd-tls-certs-cm configmap should be created by Helm.
494
create: true
495
# ConfigMap for Config Management Plugins
496
# Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/config-management-plugins/
497
cmp:
498
# -- Create the argocd-cmp-cm configmap
499
create: false
500
# -- Annotations to be added to argocd-cmp-cm configmap
501
annotations: {}
502
# -- Plugin yaml files to be added to argocd-cmp-cm
503
plugins: {}
504
# --- First plugin
505
# my-plugin:
506
# init:
507
# command: [sh]
508
# args: [-c, 'echo "Initializing..."']
509
# generate:
510
# command: [sh, -c]
511
# args:
512
# - |
513
# echo "{\"kind\": \"ConfigMap\", \"apiVersion\": \"v1\", \"metadata\": { \"name\": \"$ARGOCD_APP_NAME\", \"namespace\": \"$ARGOCD_APP_NAMESPACE\", \"annotations\": {\"Foo\": \"$ARGOCD_ENV_FOO\", \"KubeVersion\": \"$KUBE_VERSION\", \"KubeApiVersion\": \"$KUBE_API_VERSIONS\",\"Bar\": \"baz\"}}}"
514
# discover:
515
# fileName: "./subdir/s*.yaml"
516
# find:
517
# glob: "**/Chart.yaml"
518
# command: [sh, -c, find . -name env.yaml]
519
# --- Second plugin
520
# my-plugin2:
521
# init:
522
# command: [sh]
523
# args: [-c, 'echo "Initializing..."']
524
# generate:
525
# command: [sh, -c]
526
# args:
527
# - |
528
# echo "{\"kind\": \"ConfigMap\", \"apiVersion\": \"v1\", \"metadata\": { \"name\": \"$ARGOCD_APP_NAME\", \"namespace\": \"$ARGOCD_APP_NAMESPACE\", \"annotations\": {\"Foo\": \"$ARGOCD_ENV_FOO\", \"KubeVersion\": \"$KUBE_VERSION\", \"KubeApiVersion\": \"$KUBE_API_VERSIONS\",\"Bar\": \"baz\"}}}"
529
# discover:
530
# fileName: "./subdir/s*.yaml"
531
# find:
532
# glob: "**/Chart.yaml"
533
# command: [sh, -c, find . -name env.yaml]
534
535
# -- Provide one or multiple [external cluster credentials]
536
# @default -- `{}` (See [values.yaml])
537
## Ref:
538
## - https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters
539
## - https://argo-cd.readthedocs.io/en/stable/operator-manual/security/#external-cluster-credentials
540
## - https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters
541
clusterCredentials: {}
542
# mycluster:
543
# server: https://mycluster.example.com
544
# labels: {}
545
# annotations: {}
546
# config:
547
# bearerToken: "<authentication token>"
548
# tlsClientConfig:
549
# insecure: false
550
# caData: "<base64 encoded certificate>"
551
# mycluster2:
552
# server: https://mycluster2.example.com
553
# labels: {}
554
# annotations: {}
555
# namespaces: namespace1,namespace2
556
# clusterResources: true
557
# config:
558
# bearerToken: "<authentication token>"
559
# tlsClientConfig:
560
# insecure: false
561
# caData: "<base64 encoded certificate>"
562
# mycluster3-project-scoped:
563
# server: https://mycluster3.example.com
564
# labels: {}
565
# annotations: {}
566
# project: my-project1
567
# config:
568
# bearerToken: "<authentication token>"
569
# tlsClientConfig:
570
# insecure: false
571
# caData: "<base64 encoded certificate>"
572
# mycluster4-sharded:
573
# shard: 1
574
# server: https://mycluster4.example.com
575
# labels: {}
576
# annotations: {}
577
# config:
578
# bearerToken: "<authentication token>"
579
# tlsClientConfig:
580
# insecure: false
581
# caData: "<base64 encoded certificate>"
582
583
# -- Repository credentials to be used as Templates for other repos
584
## Creates a secret for each key/value specified below to create repository credentials
585
credentialTemplates: {}
586
# github-enterprise-creds-1:
587
# url: https://github.com/argoproj
588
# githubAppID: 1
589
# githubAppInstallationID: 2
590
# githubAppEnterpriseBaseUrl: https://ghe.example.com/api/v3
591
# githubAppPrivateKey: |
592
# -----BEGIN OPENSSH PRIVATE KEY-----
593
# ...
594
# -----END OPENSSH PRIVATE KEY-----
595
# https-creds:
596
# url: https://github.com/argoproj
597
# password: my-password
598
# username: my-username
599
# ssh-creds:
600
# url: git@github.com:argoproj-labs
601
# sshPrivateKey: |
602
# -----BEGIN OPENSSH PRIVATE KEY-----
603
# ...
604
# -----END OPENSSH PRIVATE KEY-----
605
606
# -- Annotations to be added to `configs.credentialTemplates` Secret
607
credentialTemplatesAnnotations: {}
608
# -- Repositories list to be used by applications
609
## Creates a secret for each key/value specified below to create repositories
610
## Note: the last example in the list would use a repository credential template, configured under "configs.credentialTemplates".
611
repositories: {}
612
# istio-helm-repo:
613
# url: https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts
614
# name: istio.io
615
# type: helm
616
# private-helm-repo:
617
# url: https://my-private-chart-repo.internal
618
# name: private-repo
619
# type: helm
620
# password: my-password
621
# username: my-username
622
# private-repo:
623
# url: https://github.com/argoproj/private-repo
624
625
# -- Annotations to be added to `configs.repositories` Secret
626
repositoriesAnnotations: {}
627
# Argo CD sensitive data
628
# Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#sensitive-data-and-sso-client-secrets
629
secret:
630
# -- Create the argocd-secret
631
createSecret: true
632
# -- Labels to be added to argocd-secret
633
labels: {}
634
# -- Annotations to be added to argocd-secret
635
annotations: {}
636
# -- Shared secret for authenticating GitHub webhook events
637
githubSecret: ""
638
# -- Shared secret for authenticating GitLab webhook events
639
gitlabSecret: ""
640
# -- Shared secret for authenticating BitbucketServer webhook events
641
bitbucketServerSecret: ""
642
# -- UUID for authenticating Bitbucket webhook events
643
bitbucketUUID: ""
644
# -- Shared secret for authenticating Gogs webhook events
645
gogsSecret: ""
646
## Azure DevOps
647
azureDevops:
648
# -- Shared secret username for authenticating Azure DevOps webhook events
649
username: ""
650
# -- Shared secret password for authenticating Azure DevOps webhook events
651
password: ""
652
# -- add additional secrets to be added to argocd-secret
653
## Custom secrets. Useful for injecting SSO secrets into environment variables.
654
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#sensitive-data-and-sso-client-secrets
655
## Note that all values must be non-empty.
656
extra: {}
657
# LDAP_PASSWORD: "mypassword"
658
659
# -- Bcrypt hashed admin password
660
## Argo expects the password in the secret to be bcrypt hashed. You can create this hash with
661
## `htpasswd -nbBC 10 "" $ARGO_PWD | tr -d ':\n' | sed 's/$2y/$2a/'`
662
argocdServerAdminPassword: ""
663
# -- Admin password modification time. Eg. `"2006-01-02T15:04:05Z"`
664
# @default -- `""` (defaults to current time)
665
argocdServerAdminPasswordMtime: ""
666
# -- Define custom [CSS styles] for your argo instance.
667
# This setting will automatically mount the provided CSS and reference it in the argo configuration.
668
# @default -- `""` (See [values.yaml])
669
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/
670
styles: ""
671
# styles: |
672
# .sidebar {
673
# background: linear-gradient(to bottom, #999, #777, #333, #222, #111);
674
# }
675
# -- Array of extra K8s manifests to deploy
676
## Note: Supports use of custom Helm templates
677
extraObjects: []
678
# - apiVersion: secrets-store.csi.x-k8s.io/v1
679
# kind: SecretProviderClass
680
# metadata:
681
# name: argocd-secrets-store
682
# spec:
683
# provider: aws
684
# parameters:
685
# objects: |
686
# - objectName: "argocd"
687
# objectType: "secretsmanager"
688
# jmesPath:
689
# - path: "client_id"
690
# objectAlias: "client_id"
691
# - path: "client_secret"
692
# objectAlias: "client_secret"
693
# secretObjects:
694
# - data:
695
# - key: client_id
696
# objectName: client_id
697
# - key: client_secret
698
# objectName: client_secret
699
# secretName: argocd-secrets-store
700
# type: Opaque
701
# labels:
702
# app.kubernetes.io/part-of: argocd
703
704
## Application controller
705
controller:
706
# -- Application controller name string
707
name: application-controller
708
# -- The number of application controller pods to run.
709
# Additional replicas will cause sharding of managed clusters across number of replicas.
710
## With dynamic cluster distribution turned on, sharding of the clusters will gracefully
711
## rebalance if the number of replica's changes or one becomes unhealthy. (alpha)
712
replicas: 1
713
# -- Enable dynamic cluster distribution (alpha)
714
# Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution
715
## This is done using a deployment instead of a statefulSet
716
## When replicas are added or removed, the sharding algorithm is re-run to ensure that the
717
## clusters are distributed according to the algorithm. If the algorithm is well-balanced,
718
## like round-robin, then the shards will be well-balanced.
719
dynamicClusterDistribution: false
720
# -- Runtime class name for the application controller
721
# @default -- `""` (defaults to global.runtimeClassName)
722
runtimeClassName: ""
723
# -- Application controller heartbeat time
724
# Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/dynamic-cluster-distribution/#working-of-dynamic-distribution
725
heartbeatTime: 10
726
# -- Maximum number of controller revisions that will be maintained in StatefulSet history
727
revisionHistoryLimit: 5
728
## Application controller Pod Disruption Budget
729
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
730
pdb:
731
# -- Deploy a [PodDisruptionBudget] for the application controller
732
enabled: false
733
# -- Labels to be added to application controller pdb
734
labels: {}
735
# -- Annotations to be added to application controller pdb
736
annotations: {}
737
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
738
# @default -- `""` (defaults to 0 if not specified)
739
minAvailable: ""
740
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%).
741
## Has higher precedence over `controller.pdb.minAvailable`
742
maxUnavailable: ""
743
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
744
## Defaults to `IfHealthyBudget` if not set
745
unhealthyPodEvictionPolicy: ""
746
## Application controller Vertical Pod Autoscaler
747
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
748
vpa:
749
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the application controller
750
enabled: false
751
# -- Labels to be added to application controller vpa
752
labels: {}
753
# -- Annotations to be added to application controller vpa
754
annotations: {}
755
# -- One of the VPA operation modes
756
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
757
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
758
updateMode: Initial
759
# -- Controls how VPA computes the recommended resources for application controller container
760
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
761
containerPolicy: {}
762
# controlledResources: ["cpu", "memory"]
763
# minAllowed:
764
# cpu: 250m
765
# memory: 256Mi
766
# maxAllowed:
767
# cpu: 1
768
# memory: 1Gi
769
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
770
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
771
## NOTE: specify only zero or one recommender as of VPA 1.7.1
772
recommenders: []
773
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
774
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
775
startupBoost: {}
776
# cpu:
777
# type: Factor
778
# factor: 2
779
# durationSeconds: 10
780
## Application controller image
781
image:
782
# -- Repository to use for the application controller
783
# @default -- `""` (defaults to global.image.repository)
784
repository: ""
785
# -- Tag to use for the application controller
786
# @default -- `""` (defaults to global.image.tag)
787
tag: ""
788
# -- Image pull policy for the application controller
789
# @default -- `""` (defaults to global.image.imagePullPolicy)
790
imagePullPolicy: ""
791
# -- Secrets with credentials to pull images from a private registry
792
# @default -- `[]` (defaults to global.imagePullSecrets)
793
imagePullSecrets: []
794
# -- Additional command line arguments to pass to application controller
795
extraArgs: []
796
# -- Environment variables to pass to application controller
797
env: []
798
# -- envFrom to pass to application controller
799
# @default -- `[]` (See [values.yaml])
800
envFrom: []
801
# - configMapRef:
802
# name: config-map-name
803
# - secretRef:
804
# name: secret-name
805
806
# -- Additional containers to be added to the application controller pod
807
## Note: Supports use of custom Helm templates
808
extraContainers: []
809
# -- Init containers to add to the application controller pod
810
## If your target Kubernetes cluster(s) require a custom credential (exec) plugin
811
## you could use this (and the same in the server pod) to provide such executable
812
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins
813
## Note: Supports use of custom Helm templates
814
initContainers: []
815
# - name: download-tools
816
# image: alpine:3
817
# command: [sh, -c]
818
# args:
819
# - wget -qO /custom-tools/kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.2.7/kubelogin-linux-amd64.zip &&
820
# mkdir /custom-tools/tmp && unzip -d /custom-tools/tmp /custom-tools/kubelogin.zip &&
821
# mv /custom-tools/tmp/bin/linux_amd64/kubelogin /custom-tools/ && rm -rf custom-tools/tmp && rm /custom-tools/kubelogin.zip
822
# volumeMounts:
823
# - mountPath: /custom-tools
824
# name: custom-tools
825
826
# -- Additional volumeMounts to the application controller main container
827
volumeMounts: []
828
# - mountPath: /usr/local/bin/kubelogin
829
# name: custom-tools
830
# subPath: kubelogin
831
832
# -- Additional volumes to the application controller pod
833
volumes: []
834
# - name: custom-tools
835
# emptyDir: {}
836
837
## Application controller emptyDir volumes
838
emptyDir:
839
# -- EmptyDir size limit for application controller
840
# @default -- `""` (defaults not set if not specified i.e. no size limit)
841
sizeLimit: ""
842
# sizeLimit: "1Gi"
843
# -- Annotations for the application controller StatefulSet
844
statefulsetAnnotations: {}
845
# -- Labels for the application controller StatefulSet
846
statefulsetLabels: {}
847
# -- Annotations for the application controller Deployment
848
deploymentAnnotations: {}
849
# -- Labels for the application controller Deployment
850
deploymentLabels: {}
851
# -- Annotations to be added to application controller pods
852
podAnnotations: {}
853
# -- Labels to be added to application controller pods
854
podLabels: {}
855
# -- Resource limits and requests for the application controller pods
856
resources: {}
857
# limits:
858
# cpu: 500m
859
# memory: 512Mi
860
# requests:
861
# cpu: 250m
862
# memory: 256Mi
863
864
# Application controller container ports
865
containerPorts:
866
# -- Metrics container port
867
metrics: 8082
868
# -- Host Network for application controller pods
869
hostNetwork: false
870
# -- [DNS configuration]
871
dnsConfig: {}
872
# -- Alternative DNS policy for application controller pods
873
dnsPolicy: "ClusterFirst"
874
# -- Application controller container-level security context
875
# @default -- See [values.yaml]
876
containerSecurityContext:
877
runAsNonRoot: true
878
readOnlyRootFilesystem: true
879
allowPrivilegeEscalation: false
880
seccompProfile:
881
type: RuntimeDefault
882
capabilities:
883
drop:
884
- ALL
885
# Readiness probe for application controller
886
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
887
readinessProbe:
888
# -- Http path to use for the readiness probe
889
httpPath: /healthz
890
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
891
failureThreshold: 3
892
# -- Number of seconds after the container has started before [probe] is initiated
893
initialDelaySeconds: 10
894
# -- How often (in seconds) to perform the [probe]
895
periodSeconds: 10
896
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
897
successThreshold: 1
898
# -- Number of seconds after which the [probe] times out
899
timeoutSeconds: 1
900
## Liveness probe for the application controller.
901
## Disabled by default, matching upstream: Argo CD removed this probe deliberately
902
## (argoproj/argo-cd#9557) because restarting an overloaded controller usually makes
903
## things worse. Enable only if you have a known failure mode (e.g. deadlock) where
904
## a restart is the correct remediation, and size the thresholds generously.
905
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
906
livenessProbe:
907
# -- Enable Kubernetes liveness probe for Application controller
908
enabled: false
909
# -- Http path to use for the liveness probe
910
httpPath: /healthz
911
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
912
failureThreshold: 5
913
# -- Number of seconds after the container has started before [probe] is initiated
914
initialDelaySeconds: 10
915
# -- How often (in seconds) to perform the [probe]
916
periodSeconds: 30
917
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
918
successThreshold: 1
919
# -- Number of seconds after which the [probe] times out
920
timeoutSeconds: 5
921
## Startup probe for application controller (optional)
922
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
923
startupProbe:
924
# -- Enable Kubernetes startup probe for application controller
925
enabled: false
926
# -- Http path to use for the startup probe
927
httpPath: /healthz
928
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
929
failureThreshold: 20
930
# -- Number of seconds after the container has started before [probe] is initiated
931
initialDelaySeconds: 10
932
# -- How often (in seconds) to perform the [probe]
933
periodSeconds: 10
934
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
935
successThreshold: 1
936
# -- Number of seconds after which the [probe] times out
937
timeoutSeconds: 1
938
# -- terminationGracePeriodSeconds for container lifecycle hook
939
terminationGracePeriodSeconds: 30
940
# -- Priority class for the application controller pods
941
# @default -- `""` (defaults to global.priorityClassName)
942
priorityClassName: ""
943
# -- [Node selector]
944
# @default -- `{}` (defaults to global.nodeSelector)
945
nodeSelector: {}
946
# -- [Tolerations] for use with node taints
947
# @default -- `[]` (defaults to global.tolerations)
948
tolerations: []
949
# -- Assign custom [affinity] rules to the deployment
950
# @default -- `{}` (defaults to global.affinity preset)
951
affinity: {}
952
# -- Assign custom [TopologySpreadConstraints] rules to the application controller
953
# @default -- `[]` (defaults to global.topologySpreadConstraints)
954
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
955
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
956
topologySpreadConstraints: []
957
# - maxSkew: 1
958
# topologyKey: topology.kubernetes.io/zone
959
# whenUnsatisfiable: DoNotSchedule
960
961
# -- Automount API credentials for the Service Account into the pod.
962
automountServiceAccountToken: true
963
serviceAccount:
964
# -- Create a service account for the application controller
965
create: true
966
# -- Service account name
967
name: argocd-application-controller
968
# -- Annotations applied to created service account
969
annotations: {}
970
# -- Labels applied to created service account
971
labels: {}
972
# -- Automount API credentials for the Service Account
973
automountServiceAccountToken: true
974
## Application controller metrics configuration
975
metrics:
976
# -- Deploy metrics service
977
enabled: false
978
applicationLabels:
979
# -- Enables additional labels in argocd_app_labels metric
980
enabled: false
981
# -- Additional labels
982
labels: []
983
service:
984
# -- Metrics service type
985
type: ClusterIP
986
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
987
clusterIP: ""
988
# -- Metrics service annotations
989
annotations: {}
990
# -- Metrics service labels
991
labels: {}
992
# -- Metrics service port
993
servicePort: 8082
994
# -- Metrics service port name
995
portName: http-metrics
996
serviceMonitor:
997
# -- Enable a prometheus ServiceMonitor
998
enabled: false
999
# -- Prometheus ServiceMonitor interval
1000
interval: 30s
1001
# -- 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.
1002
scrapeTimeout: ""
1003
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
1004
honorLabels: false
1005
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
1006
relabelings: []
1007
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
1008
metricRelabelings: []
1009
# -- Prometheus ServiceMonitor selector
1010
selector: {}
1011
# prometheus: kube-prometheus
1012
1013
# -- Prometheus ServiceMonitor scheme
1014
scheme: ""
1015
# -- Prometheus ServiceMonitor tlsConfig
1016
tlsConfig: {}
1017
# -- Prometheus ServiceMonitor namespace
1018
namespace: "" # "monitoring"
1019
# -- Prometheus ServiceMonitor labels
1020
additionalLabels: {}
1021
# -- Prometheus ServiceMonitor annotations
1022
annotations: {}
1023
rules:
1024
# -- Deploy a PrometheusRule for the application controller
1025
enabled: false
1026
# -- PrometheusRule namespace
1027
namespace: "" # "monitoring"
1028
# -- PrometheusRule selector
1029
selector: {}
1030
# prometheus: kube-prometheus
1031
1032
# -- PrometheusRule labels
1033
additionalLabels: {}
1034
# -- PrometheusRule annotations
1035
annotations: {}
1036
# -- PrometheusRule.Spec for the application controller
1037
spec: []
1038
# - alert: ArgoAppMissing
1039
# expr: |
1040
# absent(argocd_app_info) == 1
1041
# for: 15m
1042
# labels:
1043
# severity: critical
1044
# annotations:
1045
# summary: "[Argo CD] No reported applications"
1046
# description: >
1047
# Argo CD has not reported any applications data for the past 15 minutes which
1048
# means that it must be down or not functioning properly. This needs to be
1049
# resolved for this cloud to continue to maintain state.
1050
# - alert: ArgoAppNotSynced
1051
# expr: |
1052
# argocd_app_info{sync_status!="Synced"} == 1
1053
# for: 12h
1054
# labels:
1055
# severity: warning
1056
# annotations:
1057
# summary: "[{{ $labels.name }}] Application not synchronized"
1058
# description: >
1059
# The application {{ $labels.name }} has not been synchronized for over
1060
# 12 hours which means that the state of this cloud has drifted away from the
1061
# state inside Git.
1062
## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource.
1063
## Defaults to off
1064
clusterRoleRules:
1065
# -- Enable custom rules for the application controller's ClusterRole resource
1066
enabled: false
1067
# -- List of custom rules for the application controller's ClusterRole resource
1068
rules: []
1069
## Enable this and set the rules: to whatever custom rules you want for the Role resource.
1070
## Defaults to off
1071
# -- List of custom rules for the application controller's Role resource
1072
roleRules: []
1073
# Default application controller's network policy
1074
networkPolicy:
1075
# -- Default network policy rules used by application controller
1076
# @default -- `false` (defaults to global.networkPolicy.create)
1077
create: false
1078
## Dex
1079
dex:
1080
# -- Enable dex
1081
enabled: true
1082
# -- Dex name
1083
name: dex-server
1084
# -- Additional command line arguments to pass to the Dex server
1085
extraArgs: []
1086
# -- Runtime class name for Dex
1087
# @default -- `""` (defaults to global.runtimeClassName)
1088
runtimeClassName: ""
1089
metrics:
1090
# -- Deploy metrics service
1091
enabled: false
1092
service:
1093
# -- Metrics service annotations
1094
annotations: {}
1095
# -- Metrics service labels
1096
labels: {}
1097
# -- Metrics service port name
1098
portName: http-metrics
1099
serviceMonitor:
1100
# -- Enable a prometheus ServiceMonitor
1101
enabled: false
1102
# -- Prometheus ServiceMonitor interval
1103
interval: 30s
1104
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
1105
honorLabels: false
1106
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
1107
relabelings: []
1108
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
1109
metricRelabelings: []
1110
# -- Prometheus ServiceMonitor selector
1111
selector: {}
1112
# prometheus: kube-prometheus
1113
1114
# -- Prometheus ServiceMonitor scheme
1115
scheme: ""
1116
# -- Prometheus ServiceMonitor tlsConfig
1117
tlsConfig: {}
1118
# -- Prometheus ServiceMonitor namespace
1119
namespace: "" # "monitoring"
1120
# -- Prometheus ServiceMonitor labels
1121
additionalLabels: {}
1122
# -- Prometheus ServiceMonitor annotations
1123
annotations: {}
1124
## Dex Pod Disruption Budget
1125
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1126
pdb:
1127
# -- Deploy a [PodDisruptionBudget] for the Dex server
1128
enabled: false
1129
# -- Labels to be added to Dex server pdb
1130
labels: {}
1131
# -- Annotations to be added to Dex server pdb
1132
annotations: {}
1133
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
1134
# @default -- `""` (defaults to 0 if not specified)
1135
minAvailable: ""
1136
# -- Number of pods that are unavailble after eviction as number or percentage (eg.: 50%).
1137
## Has higher precedence over `dex.pdb.minAvailable`
1138
maxUnavailable: ""
1139
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
1140
## Defaults to `IfHealthyBudget` if not set
1141
unhealthyPodEvictionPolicy: ""
1142
## Dex Vertical Pod Autoscaler
1143
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
1144
vpa:
1145
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the Dex server
1146
enabled: false
1147
# -- Labels to be added to Dex server vpa
1148
labels: {}
1149
# -- Annotations to be added to Dex server vpa
1150
annotations: {}
1151
# -- One of the VPA operation modes
1152
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
1153
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
1154
updateMode: Initial
1155
# -- Controls how VPA computes the recommended resources for Dex server container
1156
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
1157
containerPolicy: {}
1158
# controlledResources: ["cpu", "memory"]
1159
# minAllowed:
1160
# cpu: 250m
1161
# memory: 256Mi
1162
# maxAllowed:
1163
# cpu: 1
1164
# memory: 1Gi
1165
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
1166
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
1167
## NOTE: specify only zero or one recommender as of VPA 1.7.1
1168
recommenders: []
1169
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
1170
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
1171
startupBoost: {}
1172
# cpu:
1173
# type: Factor
1174
# factor: 2
1175
# durationSeconds: 10
1176
## Dex image
1177
image:
1178
# -- Dex image repository
1179
repository: cgr.dev/chainguard-private/dex
1180
# -- Dex image tag
1181
tag: 2.46.0-r2@sha256:eb1ca31df17a7c751e9c69c5b485f93b3e4e26f9d3499e4c9dcef29c2f5d5e64
1182
# -- Dex imagePullPolicy
1183
# @default -- `""` (defaults to global.image.imagePullPolicy)
1184
imagePullPolicy: ""
1185
# -- Secrets with credentials to pull images from a private registry
1186
# @default -- `[]` (defaults to global.imagePullSecrets)
1187
imagePullSecrets: []
1188
# Argo CD init image that creates Dex config
1189
initImage:
1190
# -- Argo CD init image repository
1191
# @default -- `""` (defaults to global.image.repository)
1192
repository: ""
1193
# -- Argo CD init image tag
1194
# @default -- `""` (defaults to global.image.tag)
1195
tag: ""
1196
# -- Argo CD init image imagePullPolicy
1197
# @default -- `""` (defaults to global.image.imagePullPolicy)
1198
imagePullPolicy: ""
1199
# -- Argo CD init image resources
1200
# @default -- `{}` (defaults to dex.resources)
1201
resources: {}
1202
# requests:
1203
# cpu: 5m
1204
# memory: 96Mi
1205
# limits:
1206
# cpu: 10m
1207
# memory: 144Mi
1208
# -- Environment variables to pass to the Dex server
1209
env: []
1210
# -- envFrom to pass to the Dex server
1211
# @default -- `[]` (See [values.yaml])
1212
envFrom: []
1213
# - configMapRef:
1214
# name: config-map-name
1215
# - secretRef:
1216
# name: secret-name
1217
1218
# -- Additional containers to be added to the dex pod
1219
## Note: Supports use of custom Helm templates
1220
extraContainers: []
1221
# -- Init containers to add to the dex pod
1222
## Note: Supports use of custom Helm templates
1223
initContainers: []
1224
# -- Additional volumeMounts to the dex main container
1225
volumeMounts: []
1226
# -- Additional volumes to the dex pod
1227
volumes: []
1228
## Dex server emptyDir volumes
1229
emptyDir:
1230
# -- EmptyDir size limit for Dex server
1231
# @default -- `""` (defaults not set if not specified i.e. no size limit)
1232
sizeLimit: ""
1233
# sizeLimit: "1Gi"
1234
# TLS certificate configuration via Secret
1235
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#configuring-tls-to-argocd-dex-server
1236
## Note: Issuing certificates via cert-manager in not supported right now because it's not possible to restart Dex automatically without extra controllers.
1237
certificateSecret:
1238
# -- Create argocd-dex-server-tls secret
1239
enabled: false
1240
# -- Labels to be added to argocd-dex-server-tls secret
1241
labels: {}
1242
# -- Annotations to be added to argocd-dex-server-tls secret
1243
annotations: {}
1244
# -- Certificate authority. Required for self-signed certificates.
1245
ca: ""
1246
# -- Certificate private key
1247
key: ""
1248
# -- Certificate data. Must contain SANs of Dex service (ie: argocd-dex-server, argocd-dex-server.argo-cd.svc)
1249
crt: ""
1250
# -- Annotations to be added to the Dex server Deployment
1251
deploymentAnnotations: {}
1252
# -- Labels for the Dex server Deployment
1253
deploymentLabels: {}
1254
# -- Annotations to be added to the Dex server pods
1255
podAnnotations: {}
1256
# -- Labels to be added to the Dex server pods
1257
podLabels: {}
1258
# -- Resource limits and requests for dex
1259
resources: {}
1260
# limits:
1261
# cpu: 50m
1262
# memory: 64Mi
1263
# requests:
1264
# cpu: 10m
1265
# memory: 32Mi
1266
1267
# Dex container ports
1268
# NOTE: These ports are currently hardcoded and cannot be changed
1269
containerPorts:
1270
# -- HTTP container port
1271
http: 5556
1272
# -- gRPC container port
1273
grpc: 5557
1274
# -- Metrics container port
1275
metrics: 5558
1276
# -- [DNS configuration]
1277
dnsConfig: {}
1278
# -- Alternative DNS policy for Dex server pods
1279
dnsPolicy: "ClusterFirst"
1280
# -- Dex container-level security context
1281
# @default -- See [values.yaml]
1282
containerSecurityContext:
1283
runAsNonRoot: true
1284
runAsUser: 1001
1285
readOnlyRootFilesystem: true
1286
allowPrivilegeEscalation: false
1287
seccompProfile:
1288
type: RuntimeDefault
1289
capabilities:
1290
drop:
1291
- ALL
1292
## Probes for Dex server
1293
## Supported from Dex >= 2.28.0
1294
livenessProbe:
1295
# -- Enable Kubernetes liveness probe for Dex >= 2.28.0
1296
enabled: false
1297
# -- Http path to use for the liveness probe
1298
httpPath: /healthz/live
1299
# -- Http port to use for the liveness probe
1300
httpPort: metrics
1301
# -- Scheme to use for for the liveness probe (can be HTTP or HTTPS)
1302
httpScheme: HTTP
1303
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1304
failureThreshold: 3
1305
# -- Number of seconds after the container has started before [probe] is initiated
1306
initialDelaySeconds: 10
1307
# -- How often (in seconds) to perform the [probe]
1308
periodSeconds: 10
1309
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1310
successThreshold: 1
1311
# -- Number of seconds after which the [probe] times out
1312
timeoutSeconds: 1
1313
readinessProbe:
1314
# -- Enable Kubernetes readiness probe for Dex >= 2.28.0
1315
enabled: false
1316
# -- Http path to use for the readiness probe
1317
httpPath: /healthz/ready
1318
# -- Http port to use for the readiness probe
1319
httpPort: metrics
1320
# -- Scheme to use for for the liveness probe (can be HTTP or HTTPS)
1321
httpScheme: HTTP
1322
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1323
failureThreshold: 3
1324
# -- Number of seconds after the container has started before [probe] is initiated
1325
initialDelaySeconds: 10
1326
# -- How often (in seconds) to perform the [probe]
1327
periodSeconds: 10
1328
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1329
successThreshold: 1
1330
# -- Number of seconds after which the [probe] times out
1331
timeoutSeconds: 1
1332
## Startup probe for Dex server (optional)
1333
## Supported from Dex >= 2.28.0
1334
startupProbe:
1335
# -- Enable Kubernetes startup probe for Dex >= 2.28.0
1336
enabled: false
1337
# -- Http path to use for the startup probe
1338
httpPath: /healthz/ready
1339
# -- Http port to use for the startup probe
1340
httpPort: metrics
1341
# -- Scheme to use for the startup probe (can be HTTP or HTTPS)
1342
httpScheme: HTTP
1343
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1344
failureThreshold: 20
1345
# -- Number of seconds after the container has started before [probe] is initiated
1346
initialDelaySeconds: 10
1347
# -- How often (in seconds) to perform the [probe]
1348
periodSeconds: 10
1349
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1350
successThreshold: 1
1351
# -- Number of seconds after which the [probe] times out
1352
timeoutSeconds: 1
1353
# -- terminationGracePeriodSeconds for container lifecycle hook
1354
terminationGracePeriodSeconds: 30
1355
# -- Automount API credentials for the Service Account into the pod.
1356
automountServiceAccountToken: true
1357
serviceAccount:
1358
# -- Create dex service account
1359
create: true
1360
# -- Dex service account name
1361
name: argocd-dex-server
1362
# -- Annotations applied to created service account
1363
annotations: {}
1364
# -- Automount API credentials for the Service Account
1365
automountServiceAccountToken: true
1366
# -- Service port for HTTP access
1367
servicePortHttp: 5556
1368
# -- Service port name for HTTP access
1369
servicePortHttpName: http
1370
# -- Service port for gRPC access
1371
servicePortGrpc: 5557
1372
# -- Service port name for gRPC access
1373
servicePortGrpcName: grpc
1374
# -- Service port for metrics access
1375
servicePortMetrics: 5558
1376
# -- Priority class for the dex pods
1377
# @default -- `""` (defaults to global.priorityClassName)
1378
priorityClassName: ""
1379
# -- [Node selector]
1380
# @default -- `{}` (defaults to global.nodeSelector)
1381
nodeSelector: {}
1382
# -- [Tolerations] for use with node taints
1383
# @default -- `[]` (defaults to global.tolerations)
1384
tolerations: []
1385
# -- Assign custom [affinity] rules to the deployment
1386
# @default -- `{}` (defaults to global.affinity preset)
1387
affinity: {}
1388
# -- Assign custom [TopologySpreadConstraints] rules to dex
1389
# @default -- `[]` (defaults to global.topologySpreadConstraints)
1390
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1391
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
1392
topologySpreadConstraints: []
1393
# - maxSkew: 1
1394
# topologyKey: topology.kubernetes.io/zone
1395
# whenUnsatisfiable: DoNotSchedule
1396
1397
# -- Deployment strategy to be added to the Dex server Deployment
1398
deploymentStrategy: {}
1399
# type: RollingUpdate
1400
# rollingUpdate:
1401
# maxSurge: 25%
1402
# maxUnavailable: 25%
1403
1404
# Default Dex server's network policy
1405
networkPolicy:
1406
# -- Default network policy rules used by Dex server
1407
# @default -- `false` (defaults to global.networkPolicy.create)
1408
create: false
1409
# DEPRECATED - Use configs.params to override
1410
# -- Dex log format. Either `text` or `json`
1411
# @default -- `""` (defaults to global.logging.format)
1412
# logFormat: ""
1413
# -- Dex log level. One of: `debug`, `info`, `warn`, `error`
1414
# @default -- `""` (defaults to global.logging.level)
1415
# logLevel: ""
1416
## Redis
1417
redis:
1418
# -- Enable redis
1419
enabled: true
1420
# -- Redis name
1421
name: redis
1422
# -- Runtime class name for redis
1423
# @default -- `""` (defaults to global.runtimeClassName)
1424
runtimeClassName: ""
1425
# -- Existing Secret name for the embedded Redis password. The Secret must contain the key `auth`.
1426
# Only used when `redisSecretInit.enabled` is `false`, otherwise the secret name is `argocd-redis`.
1427
# Only applies to the single node Redis deployment. With `redis-ha.enabled` use `redis-ha.existingSecret` instead,
1428
# and for external Redis use `externalRedis.existingSecret`.
1429
existingSecret: ""
1430
## Redis Pod Disruption Budget
1431
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1432
pdb:
1433
# -- Deploy a [PodDisruptionBudget] for the Redis
1434
enabled: false
1435
# -- Labels to be added to Redis pdb
1436
labels: {}
1437
# -- Annotations to be added to Redis pdb
1438
annotations: {}
1439
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
1440
# @default -- `""` (defaults to 0 if not specified)
1441
minAvailable: ""
1442
# -- Number of pods that are unavailble after eviction as number or percentage (eg.: 50%).
1443
## Has higher precedence over `redis.pdb.minAvailable`
1444
maxUnavailable: ""
1445
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
1446
## Defaults to `IfHealthyBudget` if not set
1447
unhealthyPodEvictionPolicy: ""
1448
## Redis Vertical Pod Autoscaler
1449
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
1450
vpa:
1451
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the Redis
1452
enabled: false
1453
# -- Labels to be added to Redis vpa
1454
labels: {}
1455
# -- Annotations to be added to Redis vpa
1456
annotations: {}
1457
# -- One of the VPA operation modes
1458
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
1459
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
1460
updateMode: Initial
1461
# -- Controls how VPA computes the recommended resources for Redis container
1462
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
1463
containerPolicy: {}
1464
# controlledResources: ["cpu", "memory"]
1465
# minAllowed:
1466
# cpu: 250m
1467
# memory: 256Mi
1468
# maxAllowed:
1469
# cpu: 1
1470
# memory: 1Gi
1471
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
1472
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
1473
## NOTE: specify only zero or one recommender as of VPA 1.7.1
1474
recommenders: []
1475
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
1476
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
1477
startupBoost: {}
1478
# cpu:
1479
# type: Factor
1480
# factor: 2
1481
# durationSeconds: 10
1482
## Redis image
1483
image:
1484
# -- Redis repository
1485
repository: cgr.dev/chainguard-private/redis
1486
# -- Redis tag
1487
## Do not use 7.4.0 <= v < 8.0.0, otherwise you are no longer using an open source version of Redis
1488
tag: 8.10.2-r4@sha256:383b8f94b9416d00f2401c6f699537363d9ca31a408f2ff3fe75bedc923e4f95
1489
# -- Redis image pull policy
1490
# @default -- `""` (defaults to global.image.imagePullPolicy)
1491
imagePullPolicy: ""
1492
## Prometheus redis-exporter sidecar
1493
exporter:
1494
# -- Enable Prometheus redis-exporter sidecar
1495
enabled: false
1496
# -- Environment variables to pass to the Redis exporter
1497
env: []
1498
## Prometheus redis-exporter image
1499
image:
1500
# -- Repository to use for the redis-exporter
1501
repository: cgr.dev/chainguard-private/prometheus-redis-exporter
1502
# -- Tag to use for the redis-exporter
1503
tag: 1.94.0-r0@sha256:5cc23eaf826d1d4b56f70a68929376eb63b5a1c69f1fe7d8e96ae9aaa840cc20
1504
# -- Image pull policy for the redis-exporter
1505
# @default -- `""` (defaults to global.image.imagePullPolicy)
1506
imagePullPolicy: ""
1507
# -- Redis exporter security context
1508
# @default -- See [values.yaml]
1509
containerSecurityContext:
1510
runAsNonRoot: true
1511
readOnlyRootFilesystem: true
1512
allowPrivilegeEscalation: false
1513
seccompProfile:
1514
type: RuntimeDefault
1515
capabilities:
1516
drop:
1517
- ALL
1518
## Probes for Redis exporter (optional)
1519
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
1520
readinessProbe:
1521
# -- Enable Kubernetes liveness probe for Redis exporter (optional)
1522
enabled: false
1523
# -- Number of seconds after the container has started before [probe] is initiated
1524
initialDelaySeconds: 30
1525
# -- How often (in seconds) to perform the [probe]
1526
periodSeconds: 15
1527
# -- Number of seconds after which the [probe] times out
1528
timeoutSeconds: 15
1529
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1530
successThreshold: 1
1531
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1532
failureThreshold: 5
1533
livenessProbe:
1534
# -- Enable Kubernetes liveness probe for Redis exporter
1535
enabled: false
1536
# -- Number of seconds after the container has started before [probe] is initiated
1537
initialDelaySeconds: 30
1538
# -- How often (in seconds) to perform the [probe]
1539
periodSeconds: 15
1540
# -- Number of seconds after which the [probe] times out
1541
timeoutSeconds: 15
1542
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1543
successThreshold: 1
1544
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1545
failureThreshold: 5
1546
# -- Resource limits and requests for redis-exporter sidecar
1547
resources: {}
1548
# limits:
1549
# cpu: 50m
1550
# memory: 64Mi
1551
# requests:
1552
# cpu: 10m
1553
# memory: 32Mi
1554
# -- Secrets with credentials to pull images from a private registry
1555
# @default -- `[]` (defaults to global.imagePullSecrets)
1556
imagePullSecrets: []
1557
# -- Additional command line arguments to pass to redis-server
1558
extraArgs: []
1559
# - --bind
1560
# - "0.0.0.0"
1561
1562
# -- Environment variables to pass to the Redis server
1563
env: []
1564
# -- envFrom to pass to the Redis server
1565
# @default -- `[]` (See [values.yaml])
1566
envFrom: []
1567
# - configMapRef:
1568
# name: config-map-name
1569
# - secretRef:
1570
# name: secret-name
1571
1572
## Probes for Redis server (optional)
1573
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
1574
readinessProbe:
1575
# -- Enable Kubernetes liveness probe for Redis server
1576
enabled: false
1577
# -- Number of seconds after the container has started before [probe] is initiated
1578
initialDelaySeconds: 30
1579
# -- How often (in seconds) to perform the [probe]
1580
periodSeconds: 15
1581
# -- Number of seconds after which the [probe] times out
1582
timeoutSeconds: 15
1583
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1584
successThreshold: 1
1585
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1586
failureThreshold: 5
1587
livenessProbe:
1588
# -- Enable Kubernetes liveness probe for Redis server
1589
enabled: false
1590
# -- Number of seconds after the container has started before [probe] is initiated
1591
initialDelaySeconds: 30
1592
# -- How often (in seconds) to perform the [probe]
1593
periodSeconds: 15
1594
# -- Number of seconds after which the [probe] times out
1595
timeoutSeconds: 15
1596
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
1597
successThreshold: 1
1598
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
1599
failureThreshold: 5
1600
# -- Additional containers to be added to the redis pod
1601
## Note: Supports use of custom Helm templates
1602
extraContainers: []
1603
# -- Init containers to add to the redis pod
1604
## Note: Supports use of custom Helm templates
1605
initContainers: []
1606
# -- Additional volumeMounts to the redis container
1607
volumeMounts: []
1608
# -- Additional volumes to the redis pod
1609
volumes: []
1610
# -- Annotations to be added to the Redis server Deployment
1611
deploymentAnnotations: {}
1612
# -- Labels for the Redis server Deployment
1613
deploymentLabels: {}
1614
# -- Annotations to be added to the Redis server pods
1615
podAnnotations: {}
1616
# -- Labels to be added to the Redis server pods
1617
podLabels: {}
1618
# -- Resource limits and requests for redis
1619
resources: {}
1620
# limits:
1621
# cpu: 200m
1622
# memory: 128Mi
1623
# requests:
1624
# cpu: 100m
1625
# memory: 64Mi
1626
1627
# -- Redis pod-level security context
1628
# @default -- See [values.yaml]
1629
securityContext:
1630
runAsNonRoot: true
1631
runAsUser: 999
1632
seccompProfile:
1633
type: RuntimeDefault
1634
# Redis container ports
1635
containerPorts:
1636
# -- Redis container port
1637
redis: 6379
1638
# -- Metrics container port
1639
metrics: 9121
1640
# -- Host Network for redis pods
1641
hostNetwork: false
1642
# -- [DNS configuration]
1643
dnsConfig: {}
1644
# -- Alternative DNS policy for Redis server pods
1645
dnsPolicy: "ClusterFirst"
1646
# -- Redis container-level security context
1647
# @default -- See [values.yaml]
1648
containerSecurityContext:
1649
readOnlyRootFilesystem: true
1650
allowPrivilegeEscalation: false
1651
capabilities:
1652
drop:
1653
- ALL
1654
# -- Redis service port
1655
servicePort: 6379
1656
# -- Priority class for redis pods
1657
# @default -- `""` (defaults to global.priorityClassName)
1658
priorityClassName: ""
1659
# -- [Node selector]
1660
# @default -- `{}` (defaults to global.nodeSelector)
1661
nodeSelector: {}
1662
# -- [Tolerations] for use with node taints
1663
# @default -- `[]` (defaults to global.tolerations)
1664
tolerations: []
1665
# -- Assign custom [affinity] rules to the deployment
1666
# @default -- `{}` (defaults to global.affinity preset)
1667
affinity: {}
1668
# -- Assign custom [TopologySpreadConstraints] rules to redis
1669
# @default -- `[]` (defaults to global.topologySpreadConstraints)
1670
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1671
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
1672
topologySpreadConstraints: []
1673
# - maxSkew: 1
1674
# topologyKey: topology.kubernetes.io/zone
1675
# whenUnsatisfiable: DoNotSchedule
1676
1677
# -- terminationGracePeriodSeconds for container lifecycle hook
1678
terminationGracePeriodSeconds: 30
1679
# -- Automount API credentials for the Service Account into the pod.
1680
automountServiceAccountToken: true
1681
serviceAccount:
1682
# -- Create a service account for the redis pod
1683
create: false
1684
# -- Service account name for redis pod
1685
name: ""
1686
# -- Annotations applied to created service account
1687
annotations: {}
1688
# -- Automount API credentials for the Service Account
1689
automountServiceAccountToken: false
1690
service:
1691
# -- Redis service annotations
1692
annotations: {}
1693
# -- Additional redis service labels
1694
labels: {}
1695
metrics:
1696
# -- Deploy metrics service
1697
enabled: false
1698
# Redis metrics service configuration
1699
service:
1700
# -- Metrics service type
1701
type: ClusterIP
1702
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
1703
clusterIP: None
1704
# -- Metrics service annotations
1705
annotations: {}
1706
# -- Metrics service labels
1707
labels: {}
1708
# -- Metrics service port
1709
servicePort: 9121
1710
# -- Metrics service port name
1711
portName: http-metrics
1712
serviceMonitor:
1713
# -- Enable a prometheus ServiceMonitor
1714
enabled: false
1715
# -- Interval at which metrics should be scraped
1716
interval: 30s
1717
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
1718
honorLabels: false
1719
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
1720
relabelings: []
1721
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
1722
metricRelabelings: []
1723
# -- Prometheus ServiceMonitor selector
1724
selector: {}
1725
# prometheus: kube-prometheus
1726
1727
# -- Prometheus ServiceMonitor scheme
1728
scheme: ""
1729
# -- Prometheus ServiceMonitor tlsConfig
1730
tlsConfig: {}
1731
# -- Prometheus ServiceMonitor namespace
1732
namespace: "" # "monitoring"
1733
# -- Prometheus ServiceMonitor labels
1734
additionalLabels: {}
1735
# -- Prometheus ServiceMonitor annotations
1736
annotations: {}
1737
# Default redis's network policy
1738
networkPolicy:
1739
# -- Default network policy rules used by redis
1740
# @default -- `false` (defaults to global.networkPolicy.create)
1741
create: false
1742
## Redis-HA subchart replaces custom redis deployment when `redis-ha.enabled=true`
1743
# Ref: https://github.com/DandyDeveloper/charts/blob/master/charts/redis-ha/values.yaml
1744
redis-ha:
1745
# -- Enables the Redis HA subchart and disables the custom Redis single node deployment
1746
enabled: false
1747
## Redis image
1748
image:
1749
# -- Redis repository
1750
repository: ecr-public.aws.com/docker/library/redis
1751
# -- Redis tag
1752
## Do not use 7.4.0 <= v < 8.0.0, otherwise you are no longer using an open source version of Redis
1753
## Runs ahead of the upstream HA manifests' pin: the redis 8.2.x line is only built on Alpine 3.22,
1754
## whose OpenSSL carries known vulnerabilities (GHSA-5p3w-hgjv-f6q3 report); 8.6.x is the patched base.
1755
tag: 8.6.4-alpine
1756
## Prometheus redis-exporter sidecar
1757
exporter:
1758
# -- Enable Prometheus redis-exporter sidecar
1759
enabled: false
1760
# -- Repository to use for the redis-exporter
1761
image: ghcr.io/oliver006/redis_exporter
1762
# -- Tag to use for the redis-exporter
1763
tag: v1.94.0
1764
persistentVolume:
1765
# -- Configures persistence on Redis nodes
1766
enabled: false
1767
## Redis specific configuration options
1768
redis:
1769
# -- Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated
1770
masterGroupName: argocd
1771
# -- Any valid redis config options in this section will be applied to each server (see `redis-ha` chart)
1772
# @default -- See [values.yaml]
1773
config:
1774
# -- Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred. `""` is disabled
1775
# @default -- `'""'`
1776
save: '""'
1777
## Redis sentinel specific configuration options
1778
sentinel:
1779
# -- Sentinel container lifecycle hooks. The default `postStart` hook resets the sentinel state after a rolling update to prevent high CPU usage
1780
# @default -- See [values.yaml]
1781
lifecycle:
1782
postStart:
1783
exec:
1784
## Note: the reset command hardcodes the master group name `argocd`. If you override `redis-ha.redis.masterGroupName`, you must override this hook to match.
1785
command:
1786
- '/bin/sh'
1787
- '-c'
1788
- 'sleep 30; redis-cli -p 26379 sentinel reset argocd'
1789
## Enables a HA Proxy for better LoadBalancing / Sentinel Master support. Automatically proxies to Redis master.
1790
haproxy:
1791
# -- Enabled HAProxy LoadBalancing/Proxy
1792
enabled: true
1793
# -- Custom labels for the haproxy pod. This is relevant for Argo CD CLI.
1794
labels:
1795
app.kubernetes.io/name: argocd-redis-ha-haproxy
1796
image:
1797
# -- HAProxy Image Repository
1798
repository: ecr-public.aws.com/docker/library/haproxy
1799
metrics:
1800
# -- HAProxy enable prometheus metric scraping
1801
enabled: true
1802
# -- Whether the haproxy pods should be forced to run on separate nodes.
1803
hardAntiAffinity: true
1804
# -- Additional affinities to add to the haproxy pods.
1805
additionalAffinities: {}
1806
# -- Assign custom [affinity] rules to the haproxy pods.
1807
affinity: ""
1808
# -- [Tolerations] for use with node taints for haproxy pods.
1809
tolerations: []
1810
# -- HAProxy container-level security context
1811
# @default -- See [values.yaml]
1812
containerSecurityContext:
1813
readOnlyRootFilesystem: true
1814
# -- Configures redis-ha with AUTH
1815
auth: true
1816
# -- Existing Secret to use for redis-ha authentication.
1817
# By default the redis-secret-init Job is generating this Secret.
1818
# When `redisSecretInit.enabled` is `false`, the Argo CD components read the Redis password from this Secret too (key `redis-ha.authKey`).
1819
existingSecret: argocd-redis
1820
# -- Whether the Redis server pods should be forced to run on separate nodes.
1821
hardAntiAffinity: true
1822
# -- Additional affinities to add to the Redis server pods.
1823
additionalAffinities: {}
1824
# -- Assign custom [affinity] rules to the Redis pods.
1825
affinity: ""
1826
# -- [Tolerations] for use with node taints for Redis pods.
1827
tolerations: []
1828
# -- Assign custom [TopologySpreadConstraints] rules to the Redis pods.
1829
## https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
1830
topologySpreadConstraints:
1831
# -- Enable Redis HA topology spread constraints
1832
enabled: false
1833
# -- Max skew of pods tolerated
1834
# @default -- `""` (defaults to `1`)
1835
maxSkew: ""
1836
# -- Topology key for spread
1837
# @default -- `""` (defaults to `topology.kubernetes.io/zone`)
1838
topologyKey: ""
1839
# -- Enforcement policy, hard or soft
1840
# @default -- `""` (defaults to `ScheduleAnyway`)
1841
whenUnsatisfiable: ""
1842
# -- Redis HA statefulset container-level security context
1843
# @default -- See [values.yaml]
1844
containerSecurityContext:
1845
readOnlyRootFilesystem: true
1846
# External Redis parameters
1847
externalRedis:
1848
# -- External Redis server host
1849
host: ""
1850
# -- External Redis username
1851
username: ""
1852
# -- External Redis password
1853
password: ""
1854
# -- External Redis server port
1855
port: 6379
1856
# -- The name of an existing secret with Redis (must contain key `redis-password`. And should contain `redis-username` if username is not `default`) and Sentinel credentials.
1857
# When it's set, the `externalRedis.username` and `externalRedis.password` parameters are ignored
1858
existingSecret: ""
1859
# -- External Redis Secret annotations
1860
secretAnnotations: {}
1861
redisSecretInit:
1862
# -- Enable Redis secret initialization. If disabled, secret must be provisioned by alternative methods
1863
enabled: true
1864
# -- Redis secret-init name
1865
name: redis-secret-init
1866
image:
1867
# -- Repository to use for the Redis secret-init Job
1868
# @default -- `""` (defaults to global.image.repository)
1869
repository: "" # defaults to global.image.repository
1870
# -- Tag to use for the Redis secret-init Job
1871
# @default -- `""` (defaults to global.image.tag)
1872
tag: "" # defaults to global.image.tag
1873
# -- Image pull policy for the Redis secret-init Job
1874
# @default -- `""` (defaults to global.image.imagePullPolicy)
1875
imagePullPolicy: "" # IfNotPresent
1876
# -- Additional command line arguments for the Redis secret-init Job
1877
extraArgs: []
1878
# -- Secrets with credentials to pull images from a private registry
1879
# @default -- `[]` (defaults to global.imagePullSecrets)
1880
imagePullSecrets: []
1881
# -- Runtime class name for the Redis secret-init Job
1882
# @default -- `""` (defaults to global.runtimeClassName)
1883
runtimeClassName: ""
1884
# -- Annotations to be added to the Redis secret-init Job
1885
jobAnnotations: {}
1886
# -- Annotations to be added to the Redis secret-init Job
1887
podAnnotations: {}
1888
# -- Labels to be added to the Redis secret-init Job
1889
podLabels: {}
1890
# -- Resource limits and requests for Redis secret-init Job
1891
resources: {}
1892
# limits:
1893
# cpu: 200m
1894
# memory: 128Mi
1895
# requests:
1896
# cpu: 100m
1897
# memory: 64Mi
1898
1899
# -- Application controller container-level security context
1900
# @default -- See [values.yaml]
1901
containerSecurityContext:
1902
allowPrivilegeEscalation: false
1903
capabilities:
1904
drop:
1905
- ALL
1906
readOnlyRootFilesystem: true
1907
runAsNonRoot: true
1908
seccompProfile:
1909
type: RuntimeDefault
1910
# -- Redis secret-init Job pod-level security context
1911
securityContext: {}
1912
serviceAccount:
1913
# -- Create a service account for the redis pod
1914
create: true
1915
# -- Service account name for redis pod
1916
name: ""
1917
# -- Annotations applied to created service account
1918
annotations: {}
1919
# -- Automount API credentials for the Service Account
1920
automountServiceAccountToken: true
1921
# -- Priority class for Redis secret-init Job
1922
# @default -- `""` (defaults to global.priorityClassName)
1923
priorityClassName: ""
1924
# -- Host Network for redis-secret-init pods
1925
hostNetwork: false
1926
# -- [DNS configuration]
1927
dnsConfig: {}
1928
# -- Alternative DNS policy for Redis secret-init Job
1929
dnsPolicy: "ClusterFirst"
1930
# -- Assign custom [affinity] rules to the Redis secret-init Job
1931
affinity: {}
1932
# -- Node selector to be added to the Redis secret-init Job
1933
# @default -- `{}` (defaults to global.nodeSelector)
1934
nodeSelector: {}
1935
# -- Tolerations to be added to the Redis secret-init Job
1936
# @default -- `[]` (defaults to global.tolerations)
1937
tolerations: []
1938
## Server
1939
server:
1940
# -- Enable Argo CD server. Set to `false` for an Argo CD Core installation (see [Argo CD Core](#argo-cd-core))
1941
enabled: true
1942
# -- Argo CD server name
1943
name: server
1944
# -- The number of server pods to run
1945
replicas: 1
1946
# -- Runtime class name for the Argo CD server
1947
# @default -- `""` (defaults to global.runtimeClassName)
1948
runtimeClassName: ""
1949
## Argo CD server Horizontal Pod Autoscaler
1950
autoscaling:
1951
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo CD server
1952
enabled: false
1953
# -- Minimum number of replicas for the Argo CD server [HPA]
1954
minReplicas: 1
1955
# -- Maximum number of replicas for the Argo CD server [HPA]
1956
maxReplicas: 5
1957
# -- Average CPU utilization percentage for the Argo CD server [HPA]
1958
targetCPUUtilizationPercentage: 50
1959
# -- Average memory utilization percentage for the Argo CD server [HPA]
1960
targetMemoryUtilizationPercentage: 50
1961
# -- Configures the scaling behavior of the target in both Up and Down directions.
1962
behavior: {}
1963
# scaleDown:
1964
# stabilizationWindowSeconds: 300
1965
# policies:
1966
# - type: Pods
1967
# value: 1
1968
# periodSeconds: 180
1969
# scaleUp:
1970
# stabilizationWindowSeconds: 300
1971
# policies:
1972
# - type: Pods
1973
# value: 2
1974
# periodSeconds: 60
1975
# -- Configures custom HPA metrics for the Argo CD server
1976
# Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
1977
metrics: []
1978
## Argo CD server Pod Disruption Budget
1979
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1980
pdb:
1981
# -- Deploy a [PodDisruptionBudget] for the Argo CD server
1982
enabled: false
1983
# -- Labels to be added to Argo CD server pdb
1984
labels: {}
1985
# -- Annotations to be added to Argo CD server pdb
1986
annotations: {}
1987
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
1988
# @default -- `""` (defaults to 0 if not specified)
1989
minAvailable: ""
1990
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%).
1991
## Has higher precedence over `server.pdb.minAvailable`
1992
maxUnavailable: ""
1993
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
1994
## Defaults to `IfHealthyBudget` if not set
1995
unhealthyPodEvictionPolicy: ""
1996
## Argo CD server Vertical Pod Autoscaler
1997
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
1998
vpa:
1999
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the Argo CD server
2000
enabled: false
2001
# -- Labels to be added to Argo CD server vpa
2002
labels: {}
2003
# -- Annotations to be added to Argo CD server vpa
2004
annotations: {}
2005
# -- One of the VPA operation modes
2006
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
2007
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
2008
updateMode: Initial
2009
# -- Controls how VPA computes the recommended resources for Argo CD server container
2010
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
2011
containerPolicy: {}
2012
# controlledResources: ["cpu", "memory"]
2013
# minAllowed:
2014
# cpu: 250m
2015
# memory: 256Mi
2016
# maxAllowed:
2017
# cpu: 1
2018
# memory: 1Gi
2019
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
2020
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
2021
## NOTE: specify only zero or one recommender as of VPA 1.7.1
2022
recommenders: []
2023
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
2024
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
2025
startupBoost: {}
2026
# cpu:
2027
# type: Factor
2028
# factor: 2
2029
# durationSeconds: 10
2030
## Argo CD server image
2031
image:
2032
# -- Repository to use for the Argo CD server
2033
# @default -- `""` (defaults to global.image.repository)
2034
repository: "" # defaults to global.image.repository
2035
# -- Tag to use for the Argo CD server
2036
# @default -- `""` (defaults to global.image.tag)
2037
tag: "" # defaults to global.image.tag
2038
# -- Image pull policy for the Argo CD server
2039
# @default -- `""` (defaults to global.image.imagePullPolicy)
2040
imagePullPolicy: "" # IfNotPresent
2041
# -- Secrets with credentials to pull images from a private registry
2042
# @default -- `[]` (defaults to global.imagePullSecrets)
2043
imagePullSecrets: []
2044
# -- Additional command line arguments to pass to Argo CD server
2045
extraArgs: []
2046
# -- Environment variables to pass to Argo CD server
2047
env: []
2048
# -- envFrom to pass to Argo CD server
2049
# @default -- `[]` (See [values.yaml])
2050
envFrom: []
2051
# - configMapRef:
2052
# name: config-map-name
2053
# - secretRef:
2054
# name: secret-name
2055
2056
# -- Specify postStart and preStop lifecycle hooks for your argo-cd-server container
2057
lifecycle: {}
2058
## Argo CD extensions
2059
## This function in tech preview stage, do expect instability or breaking changes in newer versions.
2060
## Ref: https://github.com/argoproj-labs/argocd-extension-installer
2061
## When you enable extensions, you need to configure RBAC of logged in Argo CD user.
2062
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/rbac/#the-extensions-resource
2063
extensions:
2064
# -- Enable support for Argo CD extensions
2065
enabled: false
2066
## Argo CD extension installer image
2067
image:
2068
# -- Repository to use for extension installer image
2069
repository: cgr.dev/chainguard-private/argocd-extension-installer
2070
# -- Tag to use for extension installer image
2071
tag: 1.1.0-r1@sha256:8b72888b9a1e9134aa002d066f21d488f59e42f964da468eb46845e11fa71416
2072
# -- Image pull policy for extensions
2073
# @default -- `""` (defaults to global.image.imagePullPolicy)
2074
imagePullPolicy: ""
2075
# -- Extensions for Argo CD
2076
# @default -- `[]` (See [values.yaml])
2077
## Ref: https://github.com/argoproj-labs/argocd-extension-metrics#install-ui-extension
2078
extensionList: []
2079
# - name: extension-metrics
2080
# env:
2081
# - name: EXTENSION_URL
2082
# value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension.tar.gz
2083
# - name: EXTENSION_CHECKSUM_URL
2084
# value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension_checksums.txt
2085
2086
# -- Server UI extensions container-level security context
2087
# @default -- See [values.yaml]
2088
containerSecurityContext:
2089
runAsNonRoot: true
2090
readOnlyRootFilesystem: true
2091
allowPrivilegeEscalation: false
2092
runAsUser: 1000
2093
seccompProfile:
2094
type: RuntimeDefault
2095
capabilities:
2096
drop:
2097
- ALL
2098
# -- Resource limits and requests for the argocd-extensions container
2099
resources: {}
2100
# limits:
2101
# cpu: 50m
2102
# memory: 128Mi
2103
# requests:
2104
# cpu: 10m
2105
# memory: 64Mi
2106
# -- Additional containers to be added to the server pod
2107
## Note: Supports use of custom Helm templates
2108
extraContainers: []
2109
# - name: my-sidecar
2110
# image: nginx:latest
2111
# - name: lemonldap-ng-controller
2112
# image: lemonldapng/lemonldap-ng-controller:0.2.0
2113
# args:
2114
# - /lemonldap-ng-controller
2115
# - --alsologtostderr
2116
# - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration
2117
# env:
2118
# - name: POD_NAME
2119
# valueFrom:
2120
# fieldRef:
2121
# fieldPath: metadata.name
2122
# - name: POD_NAMESPACE
2123
# valueFrom:
2124
# fieldRef:
2125
# fieldPath: metadata.namespace
2126
# volumeMounts:
2127
# - name: copy-portal-skins
2128
# mountPath: /srv/var/lib/lemonldap-ng/portal/skins
2129
2130
# -- Init containers to add to the server pod
2131
## If your target Kubernetes cluster(s) require a custom credential (exec) plugin
2132
## you could use this (and the same in the application controller pod) to provide such executable
2133
## Ref: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins
2134
initContainers: []
2135
# - name: download-tools
2136
# image: alpine:3
2137
# command: [sh, -c]
2138
# args:
2139
# - wget -qO /custom-tools/kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.2.7/kubelogin-linux-amd64.zip &&
2140
# mkdir /custom-tools/tmp && unzip -d /custom-tools/tmp /custom-tools/kubelogin.zip &&
2141
# mv /custom-tools/tmp/bin/linux_amd64/kubelogin /custom-tools/ && rm -rf custom-tools/tmp && rm /custom-tools/kubelogin.zip
2142
# volumeMounts:
2143
# - mountPath: /custom-tools
2144
# name: custom-tools
2145
2146
# -- Additional volumeMounts to the server main container
2147
volumeMounts: []
2148
# - mountPath: /usr/local/bin/kubelogin
2149
# name: custom-tools
2150
# subPath: kubelogin
2151
2152
# -- Additional volumes to the server pod
2153
volumes: []
2154
# - name: custom-tools
2155
# emptyDir: {}
2156
2157
## Argo CD server emptyDir volumes
2158
emptyDir:
2159
# -- EmptyDir size limit for the Argo CD server
2160
# @default -- `""` (defaults not set if not specified i.e. no size limit)
2161
sizeLimit: ""
2162
# sizeLimit: "1Gi"
2163
# -- Annotations to be added to server Deployment
2164
deploymentAnnotations: {}
2165
# -- Labels for the server Deployment
2166
deploymentLabels: {}
2167
# -- Annotations to be added to server pods
2168
podAnnotations: {}
2169
# -- Labels to be added to server pods
2170
podLabels: {}
2171
# -- Resource limits and requests for the Argo CD server
2172
resources: {}
2173
# limits:
2174
# cpu: 100m
2175
# memory: 128Mi
2176
# requests:
2177
# cpu: 50m
2178
# memory: 64Mi
2179
2180
# Server container ports
2181
containerPorts:
2182
# -- Server container port
2183
server: 8080
2184
# -- Metrics container port
2185
metrics: 8083
2186
# -- Host Network for Server pods
2187
hostNetwork: false
2188
# -- [DNS configuration]
2189
dnsConfig: {}
2190
# -- Alternative DNS policy for Server pods
2191
dnsPolicy: "ClusterFirst"
2192
# -- Server container-level security context
2193
# @default -- See [values.yaml]
2194
containerSecurityContext:
2195
runAsNonRoot: true
2196
readOnlyRootFilesystem: true
2197
allowPrivilegeEscalation: false
2198
seccompProfile:
2199
type: RuntimeDefault
2200
capabilities:
2201
drop:
2202
- ALL
2203
## Readiness and liveness probes for default backend
2204
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
2205
readinessProbe:
2206
# -- Enable Kubernetes readiness probe for default backend
2207
enabled: true
2208
# -- Http path to use for the readiness probe
2209
httpPath: /healthz
2210
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
2211
failureThreshold: 3
2212
# -- Number of seconds after the container has started before [probe] is initiated
2213
initialDelaySeconds: 10
2214
# -- How often (in seconds) to perform the [probe]
2215
periodSeconds: 10
2216
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
2217
successThreshold: 1
2218
# -- Number of seconds after which the [probe] times out
2219
timeoutSeconds: 1
2220
livenessProbe:
2221
# -- Enable Kubernetes liveness probe for default backend
2222
enabled: true
2223
# -- Http path to use for the liveness probe
2224
httpPath: /healthz?full=true
2225
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
2226
failureThreshold: 3
2227
# -- Number of seconds after the container has started before [probe] is initiated
2228
initialDelaySeconds: 10
2229
# -- How often (in seconds) to perform the [probe]
2230
periodSeconds: 10
2231
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
2232
successThreshold: 1
2233
# -- Number of seconds after which the [probe] times out
2234
timeoutSeconds: 1
2235
## Startup probe for Argo CD server (optional)
2236
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
2237
startupProbe:
2238
# -- Enable Kubernetes startup probe for Argo CD server
2239
enabled: false
2240
# -- Http path to use for the startup probe
2241
httpPath: /healthz
2242
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
2243
failureThreshold: 20
2244
# -- Number of seconds after the container has started before [probe] is initiated
2245
initialDelaySeconds: 10
2246
# -- How often (in seconds) to perform the [probe]
2247
periodSeconds: 10
2248
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
2249
successThreshold: 1
2250
# -- Number of seconds after which the [probe] times out
2251
timeoutSeconds: 1
2252
# -- terminationGracePeriodSeconds for container lifecycle hook
2253
terminationGracePeriodSeconds: 30
2254
# -- Priority class for the Argo CD server pods
2255
# @default -- `""` (defaults to global.priorityClassName)
2256
priorityClassName: ""
2257
# -- [Node selector]
2258
# @default -- `{}` (defaults to global.nodeSelector)
2259
nodeSelector: {}
2260
# -- [Tolerations] for use with node taints
2261
# @default -- `[]` (defaults to global.tolerations)
2262
tolerations: []
2263
# -- Assign custom [affinity] rules to the deployment
2264
# @default -- `{}` (defaults to global.affinity preset)
2265
affinity: {}
2266
# -- Assign custom [TopologySpreadConstraints] rules to the Argo CD server
2267
# @default -- `[]` (defaults to global.topologySpreadConstraints)
2268
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
2269
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
2270
topologySpreadConstraints: []
2271
# - maxSkew: 1
2272
# topologyKey: topology.kubernetes.io/zone
2273
# whenUnsatisfiable: DoNotSchedule
2274
2275
# -- Deployment strategy to be added to the server Deployment
2276
deploymentStrategy: {}
2277
# type: RollingUpdate
2278
# rollingUpdate:
2279
# maxSurge: 25%
2280
# maxUnavailable: 25%
2281
2282
# TLS certificate configuration via cert-manager
2283
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-certificates-used-by-argocd-server
2284
certificate:
2285
# -- Deploy a Certificate resource (requires cert-manager)
2286
enabled: false
2287
# -- Certificate primary domain (commonName)
2288
# @default -- `""` (defaults to global.domain)
2289
domain: ""
2290
# -- Certificate Subject Alternate Names (SANs)
2291
additionalHosts: []
2292
# -- The requested 'duration' (i.e. lifetime) of the certificate.
2293
# @default -- `""` (defaults to 2160h = 90d if not specified)
2294
## Ref: https://cert-manager.io/docs/usage/certificate/#renewal
2295
duration: ""
2296
# -- How long before the expiry a certificate should be renewed.
2297
# @default -- `""` (defaults to 360h = 15d if not specified)
2298
## Ref: https://cert-manager.io/docs/usage/certificate/#renewal
2299
renewBefore: ""
2300
# Certificate issuer
2301
## Ref: https://cert-manager.io/docs/concepts/issuer
2302
issuer:
2303
# -- Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io`
2304
group: ""
2305
# -- Certificate issuer kind. Either `Issuer` or `ClusterIssuer`
2306
kind: ""
2307
# -- Certificate issuer name. Eg. `letsencrypt`
2308
name: ""
2309
# Private key of the certificate
2310
privateKey:
2311
# -- Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always`
2312
rotationPolicy: Never
2313
# -- The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8`
2314
encoding: PKCS1
2315
# -- Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA`
2316
algorithm: RSA
2317
# -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored.
2318
size: 2048
2319
# -- Annotations to be applied to the Server Certificate
2320
annotations: {}
2321
# -- Usages for the certificate
2322
### Ref: https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.KeyUsage
2323
usages: []
2324
# -- Annotations that allow the certificate to be composed from data residing in existing Kubernetes Resources
2325
secretTemplateAnnotations: {}
2326
# TLS certificate configuration via Secret
2327
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-certificates-used-by-argocd-server
2328
certificateSecret:
2329
# -- Create argocd-server-tls secret
2330
enabled: false
2331
# -- Annotations to be added to argocd-server-tls secret
2332
annotations: {}
2333
# -- Labels to be added to argocd-server-tls secret
2334
labels: {}
2335
# -- Private Key of the certificate
2336
key: ""
2337
# -- Certificate data
2338
crt: ""
2339
## Server service configuration
2340
service:
2341
# -- Server service annotations
2342
annotations: {}
2343
# -- Server service labels
2344
labels: {}
2345
# -- Server service type
2346
type: ClusterIP
2347
# -- Server service http port for NodePort service type (only if `server.service.type` is set to "NodePort")
2348
nodePortHttp: 30080
2349
# -- (int) Server service http2 port for NodePort service type (only if `server.service.servicePortHttp2` is set and `server.service.type` is set to "NodePort")
2350
# @default -- `nil` (a random node port is assigned)
2351
nodePortHttp2:
2352
# -- Server service https port for NodePort service type (only if `server.service.type` is set to "NodePort")
2353
nodePortHttps: 30443
2354
# -- Server service http port
2355
servicePortHttp: 80
2356
# -- (int) Server service cleartext http2 (h2c) port, targeting the same container port as `servicePortHttp`
2357
# @default -- `nil` (disabled)
2358
## The Argo CD server serves the web UI (HTTP/1.1) and gRPC (HTTP/2) on a single container port, and
2359
## `appProtocol` is single-valued per service port. Set this to expose a second port advertising the
2360
## h2c backend protocol, for Gateway API implementations that do not infer it from the route type.
2361
## Leave empty to disable. Only rendered when `configs.params."server.insecure"` is `true`, since
2362
## h2c is not applicable to a TLS backend.
2363
servicePortHttp2:
2364
# -- Server service https port
2365
servicePortHttps: 443
2366
# -- Server service http port name, can be used to route traffic via istio
2367
servicePortHttpName: http
2368
# -- Server service http2 port name, can be used to route traffic via istio
2369
servicePortHttp2Name: http2
2370
# -- Server service https port name, can be used to route traffic via istio
2371
servicePortHttpsName: https
2372
# -- Server service http2 port appProtocol, e.g. `kubernetes.io/h2c`. Implementations that select the
2373
# protocol from the port name instead do not need it
2374
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol
2375
servicePortHttp2AppProtocol: ""
2376
# -- Server service https port appProtocol
2377
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol
2378
servicePortHttpsAppProtocol: ""
2379
# -- The class of the load balancer implementation
2380
loadBalancerClass: ""
2381
# -- LoadBalancer will get created with the IP specified in this field
2382
loadBalancerIP: ""
2383
# -- Source IP ranges to allow access to service from
2384
## EKS Ref: https://repost.aws/knowledge-center/eks-cidr-ip-address-loadbalancer
2385
## GKE Ref: https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview#limit-connectivity-ext-lb
2386
loadBalancerSourceRanges: []
2387
# -- Server service external IPs
2388
externalIPs: []
2389
# -- Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
2390
## Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
2391
externalTrafficPolicy: Cluster
2392
# -- Used to maintain session affinity. Supports `ClientIP` and `None`
2393
## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
2394
sessionAffinity: None
2395
## Server metrics service configuration
2396
metrics:
2397
# -- Deploy metrics service
2398
enabled: false
2399
service:
2400
# -- Metrics service type
2401
type: ClusterIP
2402
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
2403
clusterIP: ""
2404
# -- Metrics service annotations
2405
annotations: {}
2406
# -- Metrics service labels
2407
labels: {}
2408
# -- Metrics service port
2409
servicePort: 8083
2410
# -- Metrics service port name
2411
portName: http-metrics
2412
serviceMonitor:
2413
# -- Enable a prometheus ServiceMonitor
2414
enabled: false
2415
# -- Prometheus ServiceMonitor interval
2416
interval: 30s
2417
# -- 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.
2418
scrapeTimeout: ""
2419
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
2420
honorLabels: false
2421
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
2422
relabelings: []
2423
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
2424
metricRelabelings: []
2425
# -- Prometheus ServiceMonitor selector
2426
selector: {}
2427
# prometheus: kube-prometheus
2428
2429
# -- Prometheus ServiceMonitor scheme
2430
scheme: ""
2431
# -- Prometheus ServiceMonitor tlsConfig
2432
tlsConfig: {}
2433
# -- Prometheus ServiceMonitor namespace
2434
namespace: "" # monitoring
2435
# -- Prometheus ServiceMonitor labels
2436
additionalLabels: {}
2437
# -- Prometheus ServiceMonitor annotations
2438
annotations: {}
2439
# -- Automount API credentials for the Service Account into the pod.
2440
automountServiceAccountToken: true
2441
serviceAccount:
2442
# -- Create server service account
2443
create: true
2444
# -- Server service account name
2445
name: argocd-server
2446
# -- Annotations applied to created service account
2447
annotations: {}
2448
# -- Labels applied to created service account
2449
labels: {}
2450
# -- Automount API credentials for the Service Account
2451
automountServiceAccountToken: true
2452
# Argo CD server ingress configuration
2453
ingress:
2454
# -- Enable an ingress resource for the Argo CD server
2455
enabled: false
2456
# -- Specific implementation for ingress controller. One of `generic`, `aws` or `gke`
2457
## Additional configuration might be required in related configuration sections
2458
controller: generic
2459
# -- Additional ingress labels
2460
labels: {}
2461
# -- Additional ingress annotations
2462
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-1-ssl-passthrough
2463
annotations: {}
2464
# nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
2465
# nginx.ingress.kubernetes.io/ssl-passthrough: "true"
2466
2467
# -- Defines which ingress controller will implement the resource
2468
ingressClassName: ""
2469
# -- Argo CD server hostname
2470
# @default -- `""` (defaults to global.domain)
2471
hostname: ""
2472
# -- The path to Argo CD server
2473
path: /
2474
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
2475
pathType: Prefix
2476
# -- Enable TLS configuration for the hostname defined at `server.ingress.hostname`
2477
## TLS certificate will be retrieved from a TLS secret `argocd-server-tls`
2478
## You can create this secret via `certificate` or `certificateSecret` option
2479
tls: false
2480
# -- The list of additional hostnames to be covered by ingress record
2481
# @default -- `[]` (See [values.yaml])
2482
extraHosts: []
2483
# - name: argocd.example.com
2484
# path: /
2485
2486
# -- Additional ingress paths
2487
# @default -- `[]` (See [values.yaml])
2488
## Note: Supports use of custom Helm templates
2489
extraPaths: []
2490
# - path: /*
2491
# pathType: Prefix
2492
# backend:
2493
# service:
2494
# name: ssl-redirect
2495
# port:
2496
# name: use-annotation
2497
2498
# -- Additional ingress rules
2499
# @default -- `[]` (See [values.yaml])
2500
## Note: Supports use of custom Helm templates
2501
extraRules: []
2502
# - http:
2503
# paths:
2504
# - path: /
2505
# pathType: Prefix
2506
# backend:
2507
# service:
2508
# name: '{{ include "argo-cd.server.fullname" . }}'
2509
# port:
2510
# name: '{{ .Values.server.service.servicePortHttpsName }}'
2511
2512
# -- Additional TLS configuration
2513
# @default -- `[]` (See [values.yaml])
2514
extraTls: []
2515
# - hosts:
2516
# - argocd.example.com
2517
# secretName: your-certificate-name
2518
2519
# AWS specific options for Application Load Balancer
2520
# Applies only when `serv.ingress.controller` is set to `aws`
2521
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#aws-application-load-balancers-albs-and-classic-elb-http-mode
2522
aws:
2523
# -- Backend protocol version for the AWS ALB gRPC service
2524
## This tells AWS to send traffic from the ALB using gRPC.
2525
## For more information: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html#health-check-settings
2526
backendProtocolVersion: GRPC
2527
# -- Service type for the AWS ALB gRPC service
2528
## Can be of type NodePort or ClusterIP depending on which mode you are running.
2529
## Instance mode needs type NodePort, IP mode needs type ClusterIP
2530
## Ref: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/how-it-works/#ingress-traffic
2531
serviceType: NodePort
2532
# -- Annotations for the AWS ALB gRPC service
2533
## Allows adding custom annotations to the gRPC service for integrations like DataDog, Prometheus, etc.
2534
serviceAnnotations: {}
2535
# Google specific options for Google Application Load Balancer
2536
# Applies only when `server.ingress.controller` is set to `gke`
2537
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#google-cloud-load-balancers-with-kubernetes-ingress
2538
gke:
2539
# -- Google [BackendConfig] resource, for use with the GKE Ingress Controller
2540
# @default -- `{}` (See [values.yaml])
2541
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
2542
backendConfig: {}
2543
# iap:
2544
# enabled: true
2545
# oauthclientCredentials:
2546
# secretName: argocd-secret
2547
2548
# -- Google [FrontendConfig] resource, for use with the GKE Ingress Controller
2549
# @default -- `{}` (See [values.yaml])
2550
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters
2551
frontendConfig: {}
2552
# redirectToHttps:
2553
# enabled: true
2554
# responseCodeName: RESPONSE_CODE
2555
2556
# Managed GKE certificate for ingress hostname
2557
managedCertificate:
2558
# -- Create ManagedCertificate resource and annotations for Google Load balancer
2559
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs
2560
create: true
2561
# -- Additional domains for ManagedCertificate resource
2562
extraDomains: []
2563
# - argocd.example.com
2564
# Dedicated gRPC ingress for ingress controllers that supports only single backend protocol per Ingress resource
2565
# Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#option-2-multiple-ingress-objects-and-hosts
2566
ingressGrpc:
2567
# -- Enable an ingress resource for the Argo CD server for dedicated [gRPC-ingress]
2568
enabled: false
2569
# -- Additional ingress annotations for dedicated [gRPC-ingress]
2570
annotations: {}
2571
# -- Additional ingress labels for dedicated [gRPC-ingress]
2572
labels: {}
2573
# -- Defines which ingress controller will implement the resource [gRPC-ingress]
2574
ingressClassName: ""
2575
# -- Argo CD server hostname for dedicated [gRPC-ingress]
2576
# @default -- `""` (defaults to grpc.`server.ingress.hostname`)
2577
hostname: ""
2578
# -- Argo CD server ingress path for dedicated [gRPC-ingress]
2579
path: /
2580
# -- Ingress path type for dedicated [gRPC-ingress]. One of `Exact`, `Prefix` or `ImplementationSpecific`
2581
pathType: Prefix
2582
# -- Enable TLS configuration for the hostname defined at `server.ingressGrpc.hostname`
2583
## TLS certificate will be retrieved from a TLS secret with name: `argocd-server-grpc-tls`
2584
tls: false
2585
# -- The list of additional hostnames to be covered by ingress record
2586
# @default -- `[]` (See [values.yaml])
2587
extraHosts: []
2588
# - name: grpc.argocd.example.com
2589
# path: /
2590
2591
# -- Additional ingress paths for dedicated [gRPC-ingress]
2592
# @default -- `[]` (See [values.yaml])
2593
## Note: Supports use of custom Helm templates
2594
extraPaths: []
2595
# - path: /*
2596
# pathType: Prefix
2597
# backend:
2598
# service:
2599
# name: ssl-redirect
2600
# port:
2601
# name: use-annotation
2602
2603
# -- Additional ingress rules
2604
# @default -- `[]` (See [values.yaml])
2605
## Note: Supports use of custom Helm templates
2606
extraRules: []
2607
# - http:
2608
# paths:
2609
# - path: /
2610
# pathType: Prefix
2611
# backend:
2612
# service:
2613
# name: '{{ include "argo-cd.server.fullname" . }}'
2614
# port:
2615
# name: '{{ .Values.server.service.servicePortHttpName }}'
2616
2617
# -- Additional TLS configuration for dedicated [gRPC-ingress]
2618
# @default -- `[]` (See [values.yaml])
2619
extraTls: []
2620
# - secretName: your-certificate-name
2621
# hosts:
2622
# - argocd.example.com
2623
# Create a OpenShift Route with SSL passthrough for UI and CLI
2624
# Consider setting 'hostname' e.g. https://argocd.apps-crc.testing/ using your Default Ingress Controller Domain
2625
# Find your domain with: kubectl describe --namespace=openshift-ingress-operator ingresscontroller/default | grep Domain:
2626
# If 'hostname' is an empty string "" OpenShift will create a hostname for you.
2627
route:
2628
# -- Enable an OpenShift Route for the Argo CD server
2629
enabled: false
2630
# -- Openshift Route annotations
2631
annotations: {}
2632
# -- Hostname of OpenShift Route
2633
hostname: ""
2634
# -- Termination type of Openshift Route
2635
termination_type: passthrough
2636
# -- Termination policy of Openshift Route
2637
termination_policy: None
2638
# Gateway API HTTPRoute configuration
2639
# NOTE: Gateway API support is in EXPERIMENTAL status
2640
# Support depends on your Gateway controller implementation
2641
# Some controllers may require additional configuration (e.g., BackendTLSPolicy for HTTPS backends)
2642
# Refer to https://gateway-api.sigs.k8s.io/implementations/ for controller-specific details
2643
httproute:
2644
# -- Enable HTTPRoute resource for Argo CD server (Gateway API)
2645
enabled: false
2646
# -- Additional HTTPRoute labels
2647
labels: {}
2648
# -- Additional HTTPRoute annotations
2649
annotations: {}
2650
# -- Gateway API parentRefs for the HTTPRoute
2651
## Must reference an existing Gateway
2652
# @default -- `[]` (See [values.yaml])
2653
parentRefs: []
2654
# - name: example-gateway
2655
# namespace: example-gateway-namespace
2656
# sectionName: https
2657
# -- List of hostnames for the HTTPRoute
2658
# @default -- `[]` (See [values.yaml])
2659
hostnames: []
2660
# - argocd.example.com
2661
# -- HTTPRoute rules configuration
2662
# @default -- `[]` (See [values.yaml])
2663
rules:
2664
- matches:
2665
- path:
2666
type: PathPrefix
2667
value: /
2668
# filters: []
2669
# - type: RequestHeaderModifier
2670
# requestHeaderModifier:
2671
# add:
2672
# - name: X-Custom-Header
2673
# value: custom-value
2674
# timeouts:
2675
# request: 10s
2676
# backendRequest: 2s
2677
# Gateway API GRPCRoute configuration
2678
# NOTE: Gateway API support is in EXPERIMENTAL status
2679
# Support depends on your Gateway controller implementation
2680
# Refer to https://gateway-api.sigs.k8s.io/implementations/ for controller-specific details
2681
grpcroute:
2682
# -- Enable GRPCRoute resource for Argo CD server (Gateway API)
2683
enabled: false
2684
# -- Additional GRPCRoute labels
2685
labels: {}
2686
# -- Additional GRPCRoute annotations
2687
annotations: {}
2688
# -- Gateway API parentRefs for the GRPCRoute
2689
## Must reference an existing Gateway
2690
# @default -- `[]` (See [values.yaml])
2691
parentRefs: []
2692
# - name: example-gateway
2693
# namespace: example-gateway-namespace
2694
# sectionName: grpc
2695
# -- List of hostnames for the GRPCRoute
2696
# @default -- `[]` (See [values.yaml])
2697
hostnames: []
2698
# - grpc.argocd.example.com
2699
# -- GRPCRoute rules configuration
2700
# @default -- `[]` (See [values.yaml])
2701
rules:
2702
- matches:
2703
- method:
2704
type: Exact
2705
# filters: []
2706
# - type: RequestHeaderModifier
2707
# requestHeaderModifier:
2708
# add:
2709
# - name: X-Custom-Header
2710
# value: custom-value
2711
# Gateway API BackendTLSPolicy configuration
2712
# NOTE: BackendTLSPolicy support is in EXPERIMENTAL status
2713
# Required for HTTPS backends when using Gateway API
2714
# Not all Gateway controllers support this resource (e.g., Cilium does not support it yet)
2715
backendTLSPolicy:
2716
# -- Enable BackendTLSPolicy resource for Argo CD server (Gateway API)
2717
enabled: false
2718
# -- Additional BackendTLSPolicy labels
2719
labels: {}
2720
# -- Additional BackendTLSPolicy annotations
2721
annotations: {}
2722
# -- Target references for the BackendTLSPolicy
2723
# @default -- `[]` (See [values.yaml])
2724
targetRefs: []
2725
# - group: ""
2726
# kind: Service
2727
# name: argocd-server
2728
# sectionName: https
2729
# -- TLS validation configuration
2730
# @default -- `{}` (See [values.yaml])
2731
validation: {}
2732
# hostname: argocd-server.argocd.svc.cluster.local
2733
# caCertificateRefs:
2734
# - name: example-ca-cert
2735
# group: ""
2736
# kind: ConfigMap
2737
# wellKnownCACertificates: System
2738
# Gateway API ListenerSet configuration
2739
# NOTE: Gateway API support is in EXPERIMENTAL status
2740
# ListenerSet allows attaching additional listeners to an existing Gateway
2741
# Requires Gateway API v1alpha2 and a controller that supports ListenerSet
2742
# Refer to https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1alpha2.ListenerSet
2743
listenerset:
2744
# -- Enable ListenerSet resource for Argo CD server (Gateway API)
2745
enabled: false
2746
# -- Additional ListenerSet labels
2747
labels: {}
2748
# -- Additional ListenerSet annotations
2749
annotations: {}
2750
# -- Gateway API parentRef for the ListenerSet
2751
## Must reference an existing Gateway. Unlike HTTPRoute, ListenerSet accepts exactly one parentRef.
2752
# @default -- `{}` (See [values.yaml])
2753
parentRef: {}
2754
# name: example-gateway
2755
# namespace: example-gateway-namespace
2756
# -- Hostname for the synthesized listener. Defaults to global.domain when empty.
2757
hostname: ""
2758
# -- Name of the synthesized listener. Also used as sectionName in auto-derived httproute parentRefs.
2759
listenerName: https
2760
# -- Port for the synthesized listener
2761
port: 443
2762
# -- Protocol for the synthesized listener
2763
protocol: HTTPS
2764
# -- TLS configuration for the synthesized listener
2765
tls:
2766
# -- Enable TLS on the synthesized listener
2767
enabled: true
2768
# -- TLS termination mode
2769
mode: Terminate
2770
# -- Secret name for TLS certificate. Defaults to `argocd-server-tls` when empty.
2771
secretName: ""
2772
# -- allowedRoutes for the synthesized listener
2773
allowedRoutes:
2774
namespaces:
2775
from: Same
2776
# -- Listeners to attach to the parent Gateway. When non-empty, used verbatim and all synthesized listener fields above are ignored.
2777
# @default -- `[]` (See [values.yaml])
2778
listeners: []
2779
# - name: https
2780
# port: 443
2781
# protocol: HTTPS
2782
# hostname: argocd.example.com
2783
# tls:
2784
# mode: Terminate
2785
# certificateRefs:
2786
# - group: ""
2787
# kind: Secret
2788
# name: argocd-server-tls
2789
# allowedRoutes:
2790
# namespaces:
2791
# from: Same
2792
## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource.
2793
## Defaults to off
2794
clusterRoleRules:
2795
# -- Enable custom rules for the server's ClusterRole resource
2796
enabled: false
2797
# -- List of custom rules for the server's ClusterRole resource
2798
rules: []
2799
# Default ArgoCD Server's network policy
2800
networkPolicy:
2801
# -- Default network policy rules used by ArgoCD Server
2802
# @default -- `false` (defaults to global.networkPolicy.create)
2803
create: false
2804
## Repo Server
2805
repoServer:
2806
# -- Repo server name
2807
name: repo-server
2808
# -- The number of repo server pods to run
2809
replicas: 1
2810
# -- Runtime class name for the repo server
2811
# @default -- `""` (defaults to global.runtimeClassName)
2812
runtimeClassName: ""
2813
## Repo server Horizontal Pod Autoscaler
2814
autoscaling:
2815
# -- Enable Horizontal Pod Autoscaler ([HPA]) for the repo server
2816
enabled: false
2817
# -- Minimum number of replicas for the repo server [HPA]
2818
minReplicas: 1
2819
# -- Maximum number of replicas for the repo server [HPA]
2820
maxReplicas: 5
2821
# -- Average CPU utilization percentage for the repo server [HPA]
2822
targetCPUUtilizationPercentage: 50
2823
# -- Average memory utilization percentage for the repo server [HPA]
2824
targetMemoryUtilizationPercentage: 50
2825
# -- Configures the scaling behavior of the target in both Up and Down directions.
2826
behavior: {}
2827
# scaleDown:
2828
# stabilizationWindowSeconds: 300
2829
# policies:
2830
# - type: Pods
2831
# value: 1
2832
# periodSeconds: 180
2833
# scaleUp:
2834
# stabilizationWindowSeconds: 300
2835
# policies:
2836
# - type: Pods
2837
# value: 2
2838
# periodSeconds: 60
2839
# -- Configures custom HPA metrics for the Argo CD repo server
2840
# Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
2841
metrics: []
2842
## Repo server Pod Disruption Budget
2843
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
2844
pdb:
2845
# -- Deploy a [PodDisruptionBudget] for the repo server
2846
enabled: false
2847
# -- Labels to be added to repo server pdb
2848
labels: {}
2849
# -- Annotations to be added to repo server pdb
2850
annotations: {}
2851
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
2852
# @default -- `""` (defaults to 0 if not specified)
2853
minAvailable: ""
2854
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%).
2855
## Has higher precedence over `repoServer.pdb.minAvailable`
2856
maxUnavailable: ""
2857
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
2858
## Defaults to `IfHealthyBudget` if not set
2859
unhealthyPodEvictionPolicy: ""
2860
## Repo server Vertical Pod Autoscaler
2861
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
2862
vpa:
2863
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the repo server
2864
enabled: false
2865
# -- Labels to be added to repo server vpa
2866
labels: {}
2867
# -- Annotations to be added to repo server vpa
2868
annotations: {}
2869
# -- One of the VPA operation modes
2870
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
2871
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
2872
updateMode: Initial
2873
# -- Controls how VPA computes the recommended resources for repo server container
2874
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
2875
containerPolicy: {}
2876
# controlledResources: ["cpu", "memory"]
2877
# minAllowed:
2878
# cpu: 250m
2879
# memory: 256Mi
2880
# maxAllowed:
2881
# cpu: 1
2882
# memory: 1Gi
2883
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
2884
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
2885
## NOTE: specify only zero or one recommender as of VPA 1.7.1
2886
recommenders: []
2887
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
2888
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
2889
startupBoost: {}
2890
# cpu:
2891
# type: Factor
2892
# factor: 2
2893
# durationSeconds: 10
2894
## Repo server image
2895
image:
2896
# -- Repository to use for the repo server
2897
# @default -- `""` (defaults to global.image.repository)
2898
repository: ""
2899
# -- Tag to use for the repo server
2900
# @default -- `""` (defaults to global.image.tag)
2901
tag: ""
2902
# -- Image pull policy for the repo server
2903
# @default -- `""` (defaults to global.image.imagePullPolicy)
2904
imagePullPolicy: ""
2905
# -- Secrets with credentials to pull images from a private registry
2906
# @default -- `[]` (defaults to global.imagePullSecrets)
2907
imagePullSecrets: []
2908
# -- Additional command line arguments to pass to repo server
2909
extraArgs: []
2910
# -- Environment variables to pass to repo server
2911
env: []
2912
# -- envFrom to pass to repo server
2913
# @default -- `[]` (See [values.yaml])
2914
envFrom: []
2915
# - configMapRef:
2916
# name: config-map-name
2917
# - secretRef:
2918
# name: secret-name
2919
2920
# -- Specify postStart and preStop lifecycle hooks for your argo-repo-server container
2921
lifecycle: {}
2922
# -- Additional containers to be added to the repo server pod
2923
## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/config-management-plugins/
2924
## Note: Supports use of custom Helm templates
2925
extraContainers: []
2926
# - name: cmp-my-plugin
2927
# command:
2928
# - "/var/run/argocd/argocd-cmp-server"
2929
# image: busybox
2930
# securityContext:
2931
# runAsNonRoot: true
2932
# runAsUser: 999
2933
# volumeMounts:
2934
# - mountPath: /var/run/argocd
2935
# name: var-files
2936
# - mountPath: /home/argocd/cmp-server/plugins
2937
# name: plugins
2938
# # Remove this volumeMount if you've chosen to bake the config file into the sidecar image.
2939
# - mountPath: /home/argocd/cmp-server/config/plugin.yaml
2940
# subPath: my-plugin.yaml
2941
# name: argocd-cmp-cm
2942
# # Starting with v2.4, do NOT mount the same tmp volume as the repo-server container. The filesystem separation helps
2943
# # mitigate path traversal attacks.
2944
# - mountPath: /tmp
2945
# name: cmp-tmp
2946
# - name: cmp-my-plugin2
2947
# command:
2948
# - "/var/run/argocd/argocd-cmp-server"
2949
# image: busybox
2950
# securityContext:
2951
# runAsNonRoot: true
2952
# runAsUser: 999
2953
# volumeMounts:
2954
# - mountPath: /var/run/argocd
2955
# name: var-files
2956
# # Remove this volumeMount if you've chosen to bake the config file into the sidecar image.
2957
# - mountPath: /home/argocd/cmp-server/plugins
2958
# name: plugins
2959
# - mountPath: /home/argocd/cmp-server/config/plugin.yaml
2960
# subPath: my-plugin2.yaml
2961
# name: argocd-cmp-cm
2962
# # Starting with v2.4, do NOT mount the same tmp volume as the repo-server container. The filesystem separation helps
2963
# # mitigate path traversal attacks.
2964
# - mountPath: /tmp
2965
# name: cmp-tmp
2966
2967
# -- Init containers to add to the repo server pods
2968
initContainers: []
2969
copyutil:
2970
# -- Extra arguments for the cp command in the repo server copyutil initContainer
2971
# @default -- `"--update=none"`
2972
extraArgs: "--update=none"
2973
# -- Resource limits and requests for the repo server copyutil initContainer
2974
resources: {}
2975
# limits:
2976
# cpu: 100m
2977
# memory: 128Mi
2978
# requests:
2979
# cpu: 50m
2980
# memory: 64Mi
2981
# -- Additional volumeMounts to the repo server main container
2982
volumeMounts: []
2983
# -- Additional volumes to the repo server pod
2984
volumes: []
2985
# - name: argocd-cmp-cm
2986
# configMap:
2987
# name: argocd-cmp-cm
2988
# - name: cmp-tmp
2989
# emptyDir: {}
2990
2991
# -- Volumes to be used in replacement of emptydir on default volumes
2992
existingVolumes: {}
2993
# gpgKeyring:
2994
# persistentVolumeClaim:
2995
# claimName: pvc-argocd-repo-server-keyring
2996
# helmWorkingDir:
2997
# persistentVolumeClaim:
2998
# claimName: pvc-argocd-repo-server-workdir
2999
# tmp:
3000
# persistentVolumeClaim:
3001
# claimName: pvc-argocd-repo-server-tmp
3002
# varFiles:
3003
# persistentVolumeClaim:
3004
# claimName: pvc-argocd-repo-server-varfiles
3005
# plugins:
3006
# persistentVolumeClaim:
3007
# claimName: pvc-argocd-repo-server-plugins
3008
3009
## RepoServer emptyDir volumes
3010
emptyDir:
3011
# -- EmptyDir size limit for repo server
3012
# @default -- `""` (defaults not set if not specified i.e. no size limit)
3013
sizeLimit: ""
3014
# sizeLimit: "1Gi"
3015
# -- Toggle the usage of a ephemeral Helm working directory
3016
useEphemeralHelmWorkingDir: true
3017
# -- Annotations to be added to repo server Deployment
3018
deploymentAnnotations: {}
3019
# -- Labels for the repo server Deployment
3020
deploymentLabels: {}
3021
# -- Annotations to be added to repo server pods
3022
podAnnotations: {}
3023
# -- Labels to be added to repo server pods
3024
podLabels: {}
3025
# -- Resource limits and requests for the repo server pods
3026
resources: {}
3027
# limits:
3028
# cpu: 50m
3029
# memory: 128Mi
3030
# requests:
3031
# cpu: 10m
3032
# memory: 64Mi
3033
3034
# Repo server container ports
3035
containerPorts:
3036
# -- Repo server container port
3037
server: 8081
3038
# -- Metrics container port
3039
metrics: 8084
3040
# -- Host Network for Repo server pods
3041
hostNetwork: false
3042
# -- [DNS configuration]
3043
dnsConfig: {}
3044
# -- Alternative DNS policy for Repo server pods
3045
dnsPolicy: "ClusterFirst"
3046
# -- Repo server container-level security context
3047
# @default -- See [values.yaml]
3048
containerSecurityContext:
3049
runAsNonRoot: true
3050
readOnlyRootFilesystem: true
3051
allowPrivilegeEscalation: false
3052
seccompProfile:
3053
type: RuntimeDefault
3054
capabilities:
3055
drop:
3056
- ALL
3057
## Readiness and liveness probes for Repo Server
3058
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
3059
readinessProbe:
3060
# -- Enable Kubernetes readiness probe for Repo Server
3061
enabled: true
3062
# -- Http path to use for the readiness probe
3063
httpPath: /healthz
3064
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3065
failureThreshold: 3
3066
# -- Number of seconds after the container has started before [probe] is initiated
3067
initialDelaySeconds: 10
3068
# -- How often (in seconds) to perform the [probe]
3069
periodSeconds: 10
3070
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3071
successThreshold: 1
3072
# -- Number of seconds after which the [probe] times out
3073
timeoutSeconds: 1
3074
livenessProbe:
3075
# -- Enable Kubernetes liveness probe for Repo Server
3076
enabled: true
3077
# -- Http path to use for the liveness probe
3078
httpPath: /healthz?full=true
3079
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3080
failureThreshold: 3
3081
# -- Number of seconds after the container has started before [probe] is initiated
3082
initialDelaySeconds: 10
3083
# -- How often (in seconds) to perform the [probe]
3084
periodSeconds: 10
3085
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3086
successThreshold: 1
3087
# -- Number of seconds after which the [probe] times out
3088
timeoutSeconds: 1
3089
## Startup probe for Repo Server (optional)
3090
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
3091
startupProbe:
3092
# -- Enable Kubernetes startup probe for Repo Server
3093
enabled: false
3094
# -- Http path to use for the startup probe
3095
httpPath: /healthz
3096
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3097
failureThreshold: 20
3098
# -- Number of seconds after the container has started before [probe] is initiated
3099
initialDelaySeconds: 10
3100
# -- How often (in seconds) to perform the [probe]
3101
periodSeconds: 10
3102
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3103
successThreshold: 1
3104
# -- Number of seconds after which the [probe] times out
3105
timeoutSeconds: 1
3106
# -- terminationGracePeriodSeconds for container lifecycle hook
3107
terminationGracePeriodSeconds: 30
3108
# -- [Node selector]
3109
# @default -- `{}` (defaults to global.nodeSelector)
3110
nodeSelector: {}
3111
# -- [Tolerations] for use with node taints
3112
# @default -- `[]` (defaults to global.tolerations)
3113
tolerations: []
3114
# -- Assign custom [affinity] rules to the deployment
3115
# @default -- `{}` (defaults to global.affinity preset)
3116
affinity: {}
3117
# -- Assign custom [TopologySpreadConstraints] rules to the repo server
3118
# @default -- `[]` (defaults to global.topologySpreadConstraints)
3119
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
3120
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
3121
topologySpreadConstraints: []
3122
# - maxSkew: 1
3123
# topologyKey: topology.kubernetes.io/zone
3124
# whenUnsatisfiable: DoNotSchedule
3125
3126
# -- Deployment strategy to be added to the repo server Deployment
3127
deploymentStrategy: {}
3128
# type: RollingUpdate
3129
# rollingUpdate:
3130
# maxSurge: 25%
3131
# maxUnavailable: 25%
3132
3133
# -- Priority class for the repo server pods
3134
# @default -- `""` (defaults to global.priorityClassName)
3135
priorityClassName: ""
3136
# TLS certificate configuration via Secret
3137
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#configuring-tls-to-argocd-repo-server
3138
## Note: Issuing certificates via cert-manager in not supported right now because it's not possible to restart repo server automatically without extra controllers.
3139
certificateSecret:
3140
# -- Create argocd-repo-server-tls secret
3141
enabled: false
3142
# -- Annotations to be added to argocd-repo-server-tls secret
3143
annotations: {}
3144
# -- Labels to be added to argocd-repo-server-tls secret
3145
labels: {}
3146
# -- Certificate authority. Required for self-signed certificates.
3147
ca: ""
3148
# -- Certificate private key
3149
key: ""
3150
# -- Certificate data. Must contain SANs of Repo service (ie: argocd-repo-server, argocd-repo-server.argo-cd.svc)
3151
crt: ""
3152
## Repo server service configuration
3153
service:
3154
# -- Repo server service annotations
3155
annotations: {}
3156
# -- Repo server service labels
3157
labels: {}
3158
# -- Repo server service port
3159
port: 8081
3160
# -- Repo server service port name
3161
portName: tcp-repo-server
3162
# -- Traffic distribution preference for the repo server service. If the field is not set, the implementation will apply its default routing strategy.
3163
trafficDistribution: ""
3164
## Repo server metrics service configuration
3165
metrics:
3166
# -- Deploy metrics service
3167
enabled: false
3168
service:
3169
# -- Metrics service type
3170
type: ClusterIP
3171
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
3172
clusterIP: ""
3173
# -- Metrics service annotations
3174
annotations: {}
3175
# -- Metrics service labels
3176
labels: {}
3177
# -- Metrics service port
3178
servicePort: 8084
3179
# -- Metrics service port name
3180
portName: http-metrics
3181
serviceMonitor:
3182
# -- Enable a prometheus ServiceMonitor
3183
enabled: false
3184
# -- Prometheus ServiceMonitor interval
3185
interval: 30s
3186
# -- 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.
3187
scrapeTimeout: ""
3188
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
3189
honorLabels: false
3190
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
3191
relabelings: []
3192
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
3193
metricRelabelings: []
3194
# -- Prometheus ServiceMonitor selector
3195
selector: {}
3196
# prometheus: kube-prometheus
3197
3198
# -- Prometheus ServiceMonitor scheme
3199
scheme: ""
3200
# -- Prometheus ServiceMonitor tlsConfig
3201
tlsConfig: {}
3202
# -- Prometheus ServiceMonitor namespace
3203
namespace: "" # "monitoring"
3204
# -- Prometheus ServiceMonitor labels
3205
additionalLabels: {}
3206
# -- Prometheus ServiceMonitor annotations
3207
annotations: {}
3208
## Enable Custom Rules for the Repo server's Cluster Role resource
3209
## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource.
3210
## Defaults to off
3211
clusterRoleRules:
3212
# -- Enable custom rules for the Repo server's Cluster Role resource
3213
enabled: false
3214
# -- List of custom rules for the Repo server's Cluster Role resource
3215
rules: []
3216
# -- Automount API credentials for the Service Account into the pod.
3217
automountServiceAccountToken: true
3218
## Repo server service account
3219
## If create is set to true, make sure to uncomment the name and update the rbac section below
3220
serviceAccount:
3221
# -- Create repo server service account
3222
create: true
3223
# -- Repo server service account name
3224
name: "" # "argocd-repo-server"
3225
# -- Annotations applied to created service account
3226
annotations: {}
3227
# -- Labels applied to created service account
3228
labels: {}
3229
# -- Automount API credentials for the Service Account
3230
automountServiceAccountToken: true
3231
# -- Repo server rbac rules
3232
rbac: []
3233
# - apiGroups:
3234
# - argoproj.io
3235
# resources:
3236
# - applications
3237
# verbs:
3238
# - get
3239
# - list
3240
# - watch
3241
3242
# Default repo server's network policy
3243
networkPolicy:
3244
# -- Default network policy rules used by repo server
3245
# @default -- `false` (defaults to global.networkPolicy.create)
3246
create: false
3247
## ApplicationSet controller
3248
applicationSet:
3249
# -- ApplicationSet controller name string
3250
name: applicationset-controller
3251
# -- The number of ApplicationSet controller pods to run
3252
replicas: 1
3253
# -- Runtime class name for the ApplicationSet controller
3254
# @default -- `""` (defaults to global.runtimeClassName)
3255
runtimeClassName: ""
3256
## ApplicationSet controller Pod Disruption Budget
3257
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
3258
pdb:
3259
# -- Deploy a [PodDisruptionBudget] for the ApplicationSet controller
3260
enabled: false
3261
# -- Labels to be added to ApplicationSet controller pdb
3262
labels: {}
3263
# -- Annotations to be added to ApplicationSet controller pdb
3264
annotations: {}
3265
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
3266
# @default -- `""` (defaults to 0 if not specified)
3267
minAvailable: ""
3268
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%).
3269
## Has higher precedence over `applicationSet.pdb.minAvailable`
3270
maxUnavailable: ""
3271
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
3272
## Defaults to `IfHealthyBudget` if not set
3273
unhealthyPodEvictionPolicy: ""
3274
## ApplicationSet controller Vertical Pod Autoscaler
3275
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
3276
vpa:
3277
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the ApplicationSet controller
3278
enabled: false
3279
# -- Labels to be added to ApplicationSet controller vpa
3280
labels: {}
3281
# -- Annotations to be added to ApplicationSet controller vpa
3282
annotations: {}
3283
# -- One of the VPA operation modes
3284
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
3285
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
3286
updateMode: Initial
3287
# -- Controls how VPA computes the recommended resources for ApplicationSet controller container
3288
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
3289
containerPolicy: {}
3290
# controlledResources: ["cpu", "memory"]
3291
# minAllowed:
3292
# cpu: 250m
3293
# memory: 256Mi
3294
# maxAllowed:
3295
# cpu: 1
3296
# memory: 1Gi
3297
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
3298
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
3299
## NOTE: specify only zero or one recommender as of VPA 1.7.1
3300
recommenders: []
3301
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
3302
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
3303
startupBoost: {}
3304
# cpu:
3305
# type: Factor
3306
# factor: 2
3307
# durationSeconds: 10
3308
## ApplicationSet controller image
3309
image:
3310
# -- Repository to use for the ApplicationSet controller
3311
# @default -- `""` (defaults to global.image.repository)
3312
repository: ""
3313
# -- Tag to use for the ApplicationSet controller
3314
# @default -- `""` (defaults to global.image.tag)
3315
tag: ""
3316
# -- Image pull policy for the ApplicationSet controller
3317
# @default -- `""` (defaults to global.image.imagePullPolicy)
3318
imagePullPolicy: ""
3319
# -- If defined, uses a Secret to pull an image from a private Docker registry or repository.
3320
# @default -- `[]` (defaults to global.imagePullSecrets)
3321
imagePullSecrets: []
3322
# -- ApplicationSet controller command line flags
3323
extraArgs: []
3324
# -- Environment variables to pass to the ApplicationSet controller
3325
extraEnv: []
3326
# - name: "MY_VAR"
3327
# value: "value"
3328
3329
# -- envFrom to pass to the ApplicationSet controller
3330
# @default -- `[]` (See [values.yaml])
3331
extraEnvFrom: []
3332
# - configMapRef:
3333
# name: config-map-name
3334
# - secretRef:
3335
# name: secret-name
3336
3337
# -- Additional containers to be added to the ApplicationSet controller pod
3338
## Note: Supports use of custom Helm templates
3339
extraContainers: []
3340
# -- Init containers to add to the ApplicationSet controller pod
3341
## Note: Supports use of custom Helm templates
3342
initContainers: []
3343
# -- List of extra mounts to add (normally used with extraVolumes)
3344
extraVolumeMounts: []
3345
# -- List of extra volumes to add
3346
extraVolumes: []
3347
## ApplicationSet controller emptyDir volumes
3348
emptyDir:
3349
# -- EmptyDir size limit for applicationSet controller
3350
# @default -- `""` (defaults not set if not specified i.e. no size limit)
3351
sizeLimit: ""
3352
# sizeLimit: "1Gi"
3353
## Metrics service configuration
3354
metrics:
3355
# -- Deploy metrics service
3356
enabled: false
3357
service:
3358
# -- Metrics service type
3359
type: ClusterIP
3360
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
3361
clusterIP: ""
3362
# -- Metrics service annotations
3363
annotations: {}
3364
# -- Metrics service labels
3365
labels: {}
3366
# -- Metrics service port
3367
servicePort: 8080
3368
# -- Metrics service port name
3369
portName: http-metrics
3370
serviceMonitor:
3371
# -- Enable a prometheus ServiceMonitor
3372
enabled: false
3373
# -- Prometheus ServiceMonitor interval
3374
interval: 30s
3375
# -- 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.
3376
scrapeTimeout: ""
3377
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
3378
honorLabels: false
3379
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
3380
relabelings: []
3381
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
3382
metricRelabelings: []
3383
# -- Prometheus ServiceMonitor selector
3384
selector: {}
3385
# prometheus: kube-prometheus
3386
3387
# -- Prometheus ServiceMonitor scheme
3388
scheme: ""
3389
# -- Prometheus ServiceMonitor tlsConfig
3390
tlsConfig: {}
3391
# -- Prometheus ServiceMonitor namespace
3392
namespace: "" # monitoring
3393
# -- Prometheus ServiceMonitor labels
3394
additionalLabels: {}
3395
# -- Prometheus ServiceMonitor annotations
3396
annotations: {}
3397
## ApplicationSet service configuration
3398
service:
3399
# -- ApplicationSet service annotations
3400
annotations: {}
3401
# -- ApplicationSet service labels
3402
labels: {}
3403
# -- ApplicationSet service type
3404
type: ClusterIP
3405
# -- ApplicationSet service port
3406
port: 7000
3407
# -- ApplicationSet service port name
3408
portName: http-webhook
3409
# -- Automount API credentials for the Service Account into the pod.
3410
automountServiceAccountToken: true
3411
serviceAccount:
3412
# -- Create ApplicationSet controller service account
3413
create: true
3414
# -- ApplicationSet controller service account name
3415
name: argocd-applicationset-controller
3416
# -- Annotations applied to created service account
3417
annotations: {}
3418
# -- Labels applied to created service account
3419
labels: {}
3420
# -- Automount API credentials for the Service Account
3421
automountServiceAccountToken: true
3422
# -- Annotations to be added to ApplicationSet controller Deployment
3423
deploymentAnnotations: {}
3424
# -- Labels for the ApplicationSet controller Deployment
3425
deploymentLabels: {}
3426
# -- Annotations for the ApplicationSet controller pods
3427
podAnnotations: {}
3428
# -- Labels for the ApplicationSet controller pods
3429
podLabels: {}
3430
# -- Resource limits and requests for the ApplicationSet controller pods.
3431
resources: {}
3432
# limits:
3433
# cpu: 100m
3434
# memory: 128Mi
3435
# requests:
3436
# cpu: 100m
3437
# memory: 128Mi
3438
3439
# ApplicationSet controller container ports
3440
containerPorts:
3441
# -- Metrics container port
3442
metrics: 8080
3443
# -- Probe container port
3444
probe: 8081
3445
# -- Webhook container port
3446
webhook: 7000
3447
# -- [DNS configuration]
3448
dnsConfig: {}
3449
# -- Alternative DNS policy for ApplicationSet controller pods
3450
dnsPolicy: "ClusterFirst"
3451
# -- ApplicationSet controller container-level security context
3452
# @default -- See [values.yaml]
3453
containerSecurityContext:
3454
runAsNonRoot: true
3455
readOnlyRootFilesystem: true
3456
allowPrivilegeEscalation: false
3457
seccompProfile:
3458
type: RuntimeDefault
3459
capabilities:
3460
drop:
3461
- ALL
3462
## Probes for ApplicationSet controller (optional)
3463
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
3464
readinessProbe:
3465
# -- Enable Kubernetes liveness probe for ApplicationSet controller
3466
enabled: false
3467
# -- Number of seconds after the container has started before [probe] is initiated
3468
initialDelaySeconds: 10
3469
# -- How often (in seconds) to perform the [probe]
3470
periodSeconds: 10
3471
# -- Number of seconds after which the [probe] times out
3472
timeoutSeconds: 1
3473
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3474
successThreshold: 1
3475
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3476
failureThreshold: 3
3477
livenessProbe:
3478
# -- Enable Kubernetes liveness probe for ApplicationSet controller
3479
enabled: false
3480
# -- Number of seconds after the container has started before [probe] is initiated
3481
initialDelaySeconds: 10
3482
# -- How often (in seconds) to perform the [probe]
3483
periodSeconds: 10
3484
# -- Number of seconds after which the [probe] times out
3485
timeoutSeconds: 1
3486
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3487
successThreshold: 1
3488
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3489
failureThreshold: 3
3490
## Startup probe for ApplicationSet controller (optional)
3491
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
3492
startupProbe:
3493
# -- Enable Kubernetes startup probe for ApplicationSet controller
3494
enabled: false
3495
# -- Number of seconds after the container has started before [probe] is initiated
3496
initialDelaySeconds: 10
3497
# -- How often (in seconds) to perform the [probe]
3498
periodSeconds: 10
3499
# -- Number of seconds after which the [probe] times out
3500
timeoutSeconds: 1
3501
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3502
successThreshold: 1
3503
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3504
failureThreshold: 20
3505
# -- terminationGracePeriodSeconds for container lifecycle hook
3506
terminationGracePeriodSeconds: 30
3507
# -- [Node selector]
3508
# @default -- `{}` (defaults to global.nodeSelector)
3509
nodeSelector: {}
3510
# -- [Tolerations] for use with node taints
3511
# @default -- `[]` (defaults to global.tolerations)
3512
tolerations: []
3513
# -- Assign custom [affinity] rules
3514
# @default -- `{}` (defaults to global.affinity preset)
3515
affinity: {}
3516
# -- Assign custom [TopologySpreadConstraints] rules to the ApplicationSet controller
3517
# @default -- `[]` (defaults to global.topologySpreadConstraints)
3518
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
3519
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
3520
topologySpreadConstraints: []
3521
# - maxSkew: 1
3522
# topologyKey: topology.kubernetes.io/zone
3523
# whenUnsatisfiable: DoNotSchedule
3524
3525
# -- Deployment strategy to be added to the ApplicationSet controller Deployment
3526
deploymentStrategy: {}
3527
# type: RollingUpdate
3528
# rollingUpdate:
3529
# maxSurge: 25%
3530
# maxUnavailable: 25%
3531
3532
# -- Priority class for the ApplicationSet controller pods
3533
# @default -- `""` (defaults to global.priorityClassName)
3534
priorityClassName: ""
3535
# TLS certificate configuration via cert-manager
3536
## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-configuration
3537
certificate:
3538
# -- Deploy a Certificate resource (requires cert-manager)
3539
enabled: false
3540
# -- Certificate primary domain (commonName)
3541
# @default -- `""` (defaults to global.domain)
3542
domain: ""
3543
# -- Certificate Subject Alternate Names (SANs)
3544
additionalHosts: []
3545
# -- The requested 'duration' (i.e. lifetime) of the certificate.
3546
# @default -- `""` (defaults to 2160h = 90d if not specified)
3547
## Ref: https://cert-manager.io/docs/usage/certificate/#renewal
3548
duration: ""
3549
# -- How long before the expiry a certificate should be renewed.
3550
# @default -- `""` (defaults to 360h = 15d if not specified)
3551
## Ref: https://cert-manager.io/docs/usage/certificate/#renewal
3552
renewBefore: ""
3553
# Certificate issuer
3554
## Ref: https://cert-manager.io/docs/concepts/issuer
3555
issuer:
3556
# -- Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io`
3557
group: ""
3558
# -- Certificate issuer kind. Either `Issuer` or `ClusterIssuer`
3559
kind: ""
3560
# -- Certificate issuer name. Eg. `letsencrypt`
3561
name: ""
3562
# Private key of the certificate
3563
privateKey:
3564
# -- Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always`
3565
rotationPolicy: Never
3566
# -- The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8`
3567
encoding: PKCS1
3568
# -- Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA`
3569
algorithm: RSA
3570
# -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored.
3571
size: 2048
3572
# -- Annotations to be applied to the ApplicationSet Certificate
3573
annotations: {}
3574
## Ingress for the Git Generator webhook
3575
## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration)
3576
ingress:
3577
# -- Enable an ingress resource for ApplicationSet webhook
3578
enabled: false
3579
# -- Additional ingress labels
3580
labels: {}
3581
# -- Additional ingress annotations
3582
annotations: {}
3583
# -- Defines which ingress ApplicationSet controller will implement the resource
3584
ingressClassName: ""
3585
# -- Argo CD ApplicationSet hostname
3586
# @default -- `""` (defaults to global.domain)
3587
hostname: ""
3588
# -- List of ingress paths
3589
path: /api/webhook
3590
# -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
3591
pathType: Prefix
3592
# -- Enable TLS configuration for the hostname defined at `applicationSet.webhook.ingress.hostname`
3593
## TLS certificate will be retrieved from a TLS secret with name:`argocd-applicationset-controller-tls`
3594
tls: false
3595
# -- The list of additional hostnames to be covered by ingress record
3596
# @default -- `[]` (See [values.yaml])
3597
extraHosts: []
3598
# - name: argocd.example.com
3599
# path: /
3600
3601
# -- Additional ingress paths
3602
# @default -- `[]` (See [values.yaml])
3603
extraPaths: []
3604
# - path: /*
3605
# pathType: Prefix
3606
# backend:
3607
# service:
3608
# name: ssl-redirect
3609
# port:
3610
# name: use-annotation
3611
3612
# -- Additional ingress rules
3613
# @default -- `[]` (See [values.yaml])
3614
## Note: Supports use of custom Helm templates
3615
extraRules: []
3616
# - http:
3617
# paths:
3618
# - path: /api/webhook
3619
# pathType: Prefix
3620
# backend:
3621
# service:
3622
# name: '{{ include "argo-cd.applicationSet.fullname" . }}'
3623
# port:
3624
# name: '{{ .Values.applicationSet.service.portName }}'
3625
3626
# -- Additional ingress TLS configuration
3627
# @default -- `[]` (See [values.yaml])
3628
extraTls: []
3629
# - secretName: argocd-applicationset-tls
3630
# hosts:
3631
# - argocd-applicationset.example.com
3632
## Gateway API HTTPRoute for the Git Generator webhook
3633
## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration)
3634
# NOTE: Gateway API support is in EXPERIMENTAL status
3635
# Support depends on your Gateway controller implementation
3636
# Some controllers may require additional configuration (e.g., BackendTLSPolicy for HTTPS backends)
3637
# Refer to https://gateway-api.sigs.k8s.io/implementations/ for controller-specific details
3638
httproute:
3639
# -- Enable HTTPRoute resource for Argo CD Applicationset Webhook (Gateway API)
3640
enabled: false
3641
# -- Additional HTTPRoute labels
3642
labels: {}
3643
# -- Additional HTTPRoute annotations
3644
annotations: {}
3645
# -- Gateway API parentRefs for the HTTPRoute
3646
## Must reference an existing Gateway
3647
# @default -- `[]` (See [values.yaml])
3648
parentRefs: []
3649
# - name: example-gateway
3650
# namespace: example-gateway-namespace
3651
# sectionName: https
3652
# -- List of hostnames for the HTTPRoute
3653
# @default -- `[]` (See [values.yaml])
3654
hostnames: []
3655
# - argocd.example.com
3656
# -- HTTPRoute rules configuration
3657
# @default -- `[]` (See [values.yaml])
3658
rules:
3659
- matches:
3660
- path:
3661
type: PathPrefix
3662
value: /api/webhook
3663
# filters: []
3664
# - type: RequestHeaderModifier
3665
# requestHeaderModifier:
3666
# add:
3667
# - name: X-Custom-Header
3668
# value: custom-value
3669
# Gateway API ListenerSet configuration for the Git Generator webhook
3670
## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration
3671
# NOTE: Gateway API support is in EXPERIMENTAL status
3672
# ListenerSet allows attaching additional listeners to an existing Gateway
3673
# Requires Gateway API v1alpha2 and a controller that supports ListenerSet
3674
# Refer to https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1alpha2.ListenerSet
3675
listenerset:
3676
# -- Enable ListenerSet resource for Argo CD ApplicationSet webhook (Gateway API)
3677
enabled: false
3678
# -- Additional ListenerSet labels
3679
labels: {}
3680
# -- Additional ListenerSet annotations
3681
annotations: {}
3682
# -- Gateway API parentRef for the ListenerSet
3683
## Must reference an existing Gateway. Unlike HTTPRoute, ListenerSet accepts exactly one parentRef.
3684
# @default -- `{}` (See [values.yaml])
3685
parentRef: {}
3686
# name: example-gateway
3687
# namespace: example-gateway-namespace
3688
# -- Hostname for the synthesized listener. Defaults to global.domain when empty.
3689
hostname: ""
3690
# -- Name of the synthesized listener. Also used as sectionName in auto-derived httproute parentRefs.
3691
listenerName: https
3692
# -- Port for the synthesized listener
3693
port: 443
3694
# -- Protocol for the synthesized listener
3695
protocol: HTTPS
3696
# -- TLS configuration for the synthesized listener
3697
tls:
3698
# -- Enable TLS on the synthesized listener
3699
enabled: true
3700
# -- TLS termination mode
3701
mode: Terminate
3702
# -- Secret name for TLS certificate. Defaults to `argocd-applicationset-controller-tls` when empty.
3703
secretName: ""
3704
# -- allowedRoutes for the synthesized listener
3705
allowedRoutes:
3706
namespaces:
3707
from: Same
3708
# -- Listeners to attach to the parent Gateway. When non-empty, used verbatim and all synthesized listener fields above are ignored.
3709
# @default -- `[]` (See [values.yaml])
3710
listeners: []
3711
# - name: https
3712
# port: 443
3713
# protocol: HTTPS
3714
# hostname: argocd.example.com
3715
# tls:
3716
# mode: Terminate
3717
# certificateRefs:
3718
# - group: ""
3719
# kind: Secret
3720
# name: argocd-applicationset-controller-tls
3721
# allowedRoutes:
3722
# namespaces:
3723
# from: Same
3724
# -- Enable ApplicationSet in any namespace feature
3725
allowAnyNamespace: false
3726
# Default ApplicationSet controller's network policy
3727
networkPolicy:
3728
# -- Default network policy rules used by ApplicationSet controller
3729
# @default -- `false` (defaults to global.networkPolicy.create)
3730
create: false
3731
## Notifications controller
3732
notifications:
3733
# -- Enable notifications controller
3734
enabled: true
3735
# -- Notifications controller name string
3736
name: notifications-controller
3737
# -- Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates
3738
# @default -- `""` (defaults to https://`global.domain`)
3739
argocdUrl: ""
3740
# -- Runtime class name for the notifications controller
3741
# @default -- `""` (defaults to global.runtimeClassName)
3742
runtimeClassName: ""
3743
## Notifications controller Pod Disruption Budget
3744
## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
3745
pdb:
3746
# -- Deploy a [PodDisruptionBudget] for the notifications controller
3747
enabled: false
3748
# -- Labels to be added to notifications controller pdb
3749
labels: {}
3750
# -- Annotations to be added to notifications controller pdb
3751
annotations: {}
3752
# -- Number of pods that are available after eviction as number or percentage (eg.: 50%)
3753
# @default -- `""` (defaults to 0 if not specified)
3754
minAvailable: ""
3755
# -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%).
3756
## Has higher precedence over `notifications.pdb.minAvailable`
3757
maxUnavailable: ""
3758
# -- Policy for evicting unhealthy (not ready) pods, either `IfHealthyBudget` or `AlwaysAllow`
3759
## Defaults to `IfHealthyBudget` if not set
3760
unhealthyPodEvictionPolicy: ""
3761
## Notifications controller Vertical Pod Autoscaler
3762
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
3763
vpa:
3764
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the notifications controller
3765
enabled: false
3766
# -- Labels to be added to notifications controller vpa
3767
labels: {}
3768
# -- Annotations to be added to notifications controller vpa
3769
annotations: {}
3770
# -- One of the VPA operation modes
3771
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
3772
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
3773
updateMode: Initial
3774
# -- Controls how VPA computes the recommended resources for notifications controller container
3775
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
3776
containerPolicy: {}
3777
# controlledResources: ["cpu", "memory"]
3778
# minAllowed:
3779
# cpu: 250m
3780
# memory: 256Mi
3781
# maxAllowed:
3782
# cpu: 1
3783
# memory: 1Gi
3784
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
3785
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
3786
## NOTE: specify only zero or one recommender as of VPA 1.7.1
3787
recommenders: []
3788
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
3789
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
3790
startupBoost: {}
3791
# cpu:
3792
# type: Factor
3793
# factor: 2
3794
# durationSeconds: 10
3795
## Notifications controller image
3796
image:
3797
# -- Repository to use for the notifications controller
3798
# @default -- `""` (defaults to global.image.repository)
3799
repository: ""
3800
# -- Tag to use for the notifications controller
3801
# @default -- `""` (defaults to global.image.tag)
3802
tag: ""
3803
# -- Image pull policy for the notifications controller
3804
# @default -- `""` (defaults to global.image.imagePullPolicy)
3805
imagePullPolicy: ""
3806
# -- Secrets with credentials to pull images from a private registry
3807
# @default -- `[]` (defaults to global.imagePullSecrets)
3808
imagePullSecrets: []
3809
# DEPRECATED - Use configs.params to override
3810
# -- Notifications controller log format. Either `text` or `json`
3811
# @default -- `""` (defaults to global.logging.format)
3812
# logFormat: ""
3813
# -- Notifications controller log level. One of: `debug`, `info`, `warn`, `error`
3814
# @default -- `""` (defaults to global.logging.level)
3815
# logLevel: ""
3816
3817
# -- Extra arguments to provide to the notifications controller
3818
extraArgs: []
3819
# -- Additional container environment variables
3820
extraEnv: []
3821
# -- envFrom to pass to the notifications controller
3822
# @default -- `[]` (See [values.yaml])
3823
extraEnvFrom: []
3824
# - configMapRef:
3825
# name: config-map-name
3826
# - secretRef:
3827
# name: secret-name
3828
3829
# -- Additional containers to be added to the notifications controller pod
3830
## Note: Supports use of custom Helm templates
3831
extraContainers: []
3832
# -- Init containers to add to the notifications controller pod
3833
## Note: Supports use of custom Helm templates
3834
initContainers: []
3835
# -- List of extra mounts to add (normally used with extraVolumes)
3836
extraVolumeMounts: []
3837
# -- List of extra volumes to add
3838
extraVolumes: []
3839
# -- Define user-defined context
3840
## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/templates/#defining-user-defined-context
3841
context: {}
3842
# region: east
3843
# environmentName: staging
3844
3845
secret:
3846
# -- Whether helm chart creates notifications controller secret
3847
## If true, will create a secret with the name below. Otherwise, will assume existence of a secret with that name.
3848
create: true
3849
# -- notifications controller Secret name
3850
name: "argocd-notifications-secret"
3851
# -- key:value pairs of annotations to be added to the secret
3852
annotations: {}
3853
# -- key:value pairs of labels to be added to the secret
3854
labels: {}
3855
# -- Generic key:value pairs to be inserted into the secret
3856
## Can be used for templates, notification services etc. Some examples given below.
3857
## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/overview/
3858
items: {}
3859
# slack-token:
3860
# # For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/slack/
3861
# grafana-apiKey:
3862
# # For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/grafana/
3863
3864
# webhooks-github-token:
3865
3866
# email-username:
3867
# email-password:
3868
# For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/email/
3869
3870
metrics:
3871
# -- Enables prometheus metrics server
3872
enabled: false
3873
# -- Metrics port
3874
port: 9001
3875
service:
3876
# -- Metrics service type
3877
type: ClusterIP
3878
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
3879
clusterIP: ""
3880
# -- Metrics service annotations
3881
annotations: {}
3882
# -- Metrics service labels
3883
labels: {}
3884
# -- Metrics service port name
3885
portName: http-metrics
3886
serviceMonitor:
3887
# -- Enable a prometheus ServiceMonitor
3888
enabled: false
3889
# -- Prometheus ServiceMonitor selector
3890
selector: {}
3891
# prometheus: kube-prometheus
3892
# -- Prometheus ServiceMonitor labels
3893
additionalLabels: {}
3894
# -- Prometheus ServiceMonitor annotations
3895
annotations: {}
3896
# namespace: monitoring
3897
# interval: 30s
3898
# scrapeTimeout: 10s
3899
# -- Prometheus ServiceMonitor scheme
3900
scheme: ""
3901
# -- Prometheus ServiceMonitor tlsConfig
3902
tlsConfig: {}
3903
# -- When true, honorLabels preserves the metric’s labels when they collide with the target’s labels.
3904
honorLabels: false
3905
# -- Prometheus [RelabelConfigs] to apply to samples before scraping
3906
relabelings: []
3907
# -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
3908
metricRelabelings: []
3909
# -- Configures notification services such as slack, email or custom webhook
3910
# @default -- See [values.yaml]
3911
## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/services/overview/
3912
notifiers: {}
3913
# service.slack: |
3914
# token: $slack-token
3915
3916
# -- Annotations to be applied to the notifications controller Deployment
3917
deploymentAnnotations: {}
3918
# -- Labels for the notifications controller Deployment
3919
deploymentLabels: {}
3920
# -- Annotations to be applied to the notifications controller Pods
3921
podAnnotations: {}
3922
# -- Labels to be applied to the notifications controller Pods
3923
podLabels: {}
3924
# -- Resource limits and requests for the notifications controller
3925
resources: {}
3926
# limits:
3927
# cpu: 100m
3928
# memory: 128Mi
3929
# requests:
3930
# cpu: 100m
3931
# memory: 128Mi
3932
3933
# Notification controller container ports
3934
containerPorts:
3935
# -- Metrics container port
3936
metrics: 9001
3937
# -- [DNS configuration]
3938
dnsConfig: {}
3939
# -- Alternative DNS policy for notifications controller Pods
3940
dnsPolicy: "ClusterFirst"
3941
# -- Notification controller container-level security Context
3942
# @default -- See [values.yaml]
3943
containerSecurityContext:
3944
runAsNonRoot: true
3945
readOnlyRootFilesystem: true
3946
allowPrivilegeEscalation: false
3947
seccompProfile:
3948
type: RuntimeDefault
3949
capabilities:
3950
drop:
3951
- ALL
3952
## Probes for notifications controller Pods (optional)
3953
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
3954
readinessProbe:
3955
# -- Enable Kubernetes liveness probe for notifications controller Pods
3956
enabled: false
3957
# -- Number of seconds after the container has started before [probe] is initiated
3958
initialDelaySeconds: 10
3959
# -- How often (in seconds) to perform the [probe]
3960
periodSeconds: 10
3961
# -- Number of seconds after which the [probe] times out
3962
timeoutSeconds: 1
3963
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3964
successThreshold: 1
3965
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3966
failureThreshold: 3
3967
livenessProbe:
3968
# -- Enable Kubernetes liveness probe for notifications controller Pods
3969
enabled: false
3970
# -- Number of seconds after the container has started before [probe] is initiated
3971
initialDelaySeconds: 10
3972
# -- How often (in seconds) to perform the [probe]
3973
periodSeconds: 10
3974
# -- Number of seconds after which the [probe] times out
3975
timeoutSeconds: 1
3976
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3977
successThreshold: 1
3978
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3979
failureThreshold: 3
3980
## Startup probe for notifications controller Pods (optional)
3981
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
3982
startupProbe:
3983
# -- Enable Kubernetes startup probe for notifications controller Pods
3984
enabled: false
3985
# -- Number of seconds after the container has started before [probe] is initiated
3986
initialDelaySeconds: 10
3987
# -- How often (in seconds) to perform the [probe]
3988
periodSeconds: 10
3989
# -- Number of seconds after which the [probe] times out
3990
timeoutSeconds: 1
3991
# -- Minimum consecutive successes for the [probe] to be considered successful after having failed
3992
successThreshold: 1
3993
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
3994
failureThreshold: 20
3995
# -- terminationGracePeriodSeconds for container lifecycle hook
3996
terminationGracePeriodSeconds: 30
3997
# -- [Node selector]
3998
# @default -- `{}` (defaults to global.nodeSelector)
3999
nodeSelector: {}
4000
# -- [Tolerations] for use with node taints
4001
# @default -- `[]` (defaults to global.tolerations)
4002
tolerations: []
4003
# -- Assign custom [affinity] rules
4004
# @default -- `{}` (defaults to global.affinity preset)
4005
affinity: {}
4006
# -- Assign custom [TopologySpreadConstraints] rules to the application controller
4007
# @default -- `[]` (defaults to global.topologySpreadConstraints)
4008
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
4009
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
4010
topologySpreadConstraints: []
4011
# - maxSkew: 1
4012
# topologyKey: topology.kubernetes.io/zone
4013
# whenUnsatisfiable: DoNotSchedule
4014
4015
# -- Deployment strategy to be added to the notifications controller Deployment
4016
deploymentStrategy:
4017
type: Recreate
4018
# -- Priority class for the notifications controller pods
4019
# @default -- `""` (defaults to global.priorityClassName)
4020
priorityClassName: ""
4021
# -- Automount API credentials for the Service Account into the pod.
4022
automountServiceAccountToken: true
4023
serviceAccount:
4024
# -- Create notifications controller service account
4025
create: true
4026
# -- Notification controller service account name
4027
name: argocd-notifications-controller
4028
# -- Annotations applied to created service account
4029
annotations: {}
4030
# -- Labels applied to created service account
4031
labels: {}
4032
# -- Automount API credentials for the Service Account
4033
automountServiceAccountToken: true
4034
cm:
4035
# -- Whether helm chart creates notifications controller config map
4036
create: true
4037
## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource.
4038
## Defaults to off
4039
clusterRoleRules:
4040
# -- List of custom rules for the notifications controller's ClusterRole resource
4041
rules: []
4042
# -- Contains centrally managed global application subscriptions
4043
## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/subscriptions/
4044
subscriptions: []
4045
# # subscription for on-sync-status-unknown trigger notifications
4046
# - recipients:
4047
# - slack:test2
4048
# - email:test@gmail.com
4049
# triggers:
4050
# - on-sync-status-unknown
4051
# # subscription restricted to applications with matching labels only
4052
# - recipients:
4053
# - slack:test3
4054
# selector: test=true
4055
# triggers:
4056
# - on-sync-status-unknown
4057
4058
# -- The notification template is used to generate the notification content
4059
## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/templates/
4060
templates: {}
4061
# template.app-deployed: |
4062
# email:
4063
# subject: New version of an application {{.app.metadata.name}} is up and running.
4064
# message: |
4065
# {{if eq .serviceType "slack"}}:white_check_mark:{{end}} Application {{.app.metadata.name}} is now running new version of deployments manifests.
4066
# slack:
4067
# attachments: |
4068
# [{
4069
# "title": "{{ .app.metadata.name}}",
4070
# "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
4071
# "color": "#18be52",
4072
# "fields": [
4073
# {
4074
# "title": "Sync Status",
4075
# "value": "{{.app.status.sync.status}}",
4076
# "short": true
4077
# },
4078
# {
4079
# "title": "Repository",
4080
# "value": "{{.app.spec.source.repoURL}}",
4081
# "short": true
4082
# },
4083
# {
4084
# "title": "Revision",
4085
# "value": "{{.app.status.sync.revision}}",
4086
# "short": true
4087
# }
4088
# {{range $index, $c := .app.status.conditions}}
4089
# {{if not $index}},{{end}}
4090
# {{if $index}},{{end}}
4091
# {
4092
# "title": "{{$c.type}}",
4093
# "value": "{{$c.message}}",
4094
# "short": true
4095
# }
4096
# {{end}}
4097
# ]
4098
# }]
4099
# template.app-health-degraded: |
4100
# email:
4101
# subject: Application {{.app.metadata.name}} has degraded.
4102
# message: |
4103
# {{if eq .serviceType "slack"}}:exclamation:{{end}} Application {{.app.metadata.name}} has degraded.
4104
# Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
4105
# slack:
4106
# attachments: |-
4107
# [{
4108
# "title": "{{ .app.metadata.name}}",
4109
# "title_link": "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
4110
# "color": "#f4c030",
4111
# "fields": [
4112
# {
4113
# "title": "Sync Status",
4114
# "value": "{{.app.status.sync.status}}",
4115
# "short": true
4116
# },
4117
# {
4118
# "title": "Repository",
4119
# "value": "{{.app.spec.source.repoURL}}",
4120
# "short": true
4121
# }
4122
# {{range $index, $c := .app.status.conditions}}
4123
# {{if not $index}},{{end}}
4124
# {{if $index}},{{end}}
4125
# {
4126
# "title": "{{$c.type}}",
4127
# "value": "{{$c.message}}",
4128
# "short": true
4129
# }
4130
# {{end}}
4131
# ]
4132
# }]
4133
# template.app-sync-failed: |
4134
# email:
4135
# subject: Failed to sync application {{.app.metadata.name}}.
4136
# message: |
4137
# {{if eq .serviceType "slack"}}:exclamation:{{end}} The sync operation of application {{.app.metadata.name}} has failed at {{.app.status.operationState.finishedAt}} with the following error: {{.app.status.operationState.message}}
4138
# Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true .
4139
# slack:
4140
# attachments: |-
4141
# [{
4142
# "title": "{{ .app.metadata.name}}",
4143
# "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
4144
# "color": "#E96D76",
4145
# "fields": [
4146
# {
4147
# "title": "Sync Status",
4148
# "value": "{{.app.status.sync.status}}",
4149
# "short": true
4150
# },
4151
# {
4152
# "title": "Repository",
4153
# "value": "{{.app.spec.source.repoURL}}",
4154
# "short": true
4155
# }
4156
# {{range $index, $c := .app.status.conditions}}
4157
# {{if not $index}},{{end}}
4158
# {{if $index}},{{end}}
4159
# {
4160
# "title": "{{$c.type}}",
4161
# "value": "{{$c.message}}",
4162
# "short": true
4163
# }
4164
# {{end}}
4165
# ]
4166
# }]
4167
# template.app-sync-running: |
4168
# email:
4169
# subject: Start syncing application {{.app.metadata.name}}.
4170
# message: |
4171
# The sync operation of application {{.app.metadata.name}} has started at {{.app.status.operationState.startedAt}}.
4172
# Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true .
4173
# slack:
4174
# attachments: |-
4175
# [{
4176
# "title": "{{ .app.metadata.name}}",
4177
# "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
4178
# "color": "#0DADEA",
4179
# "fields": [
4180
# {
4181
# "title": "Sync Status",
4182
# "value": "{{.app.status.sync.status}}",
4183
# "short": true
4184
# },
4185
# {
4186
# "title": "Repository",
4187
# "value": "{{.app.spec.source.repoURL}}",
4188
# "short": true
4189
# }
4190
# {{range $index, $c := .app.status.conditions}}
4191
# {{if not $index}},{{end}}
4192
# {{if $index}},{{end}}
4193
# {
4194
# "title": "{{$c.type}}",
4195
# "value": "{{$c.message}}",
4196
# "short": true
4197
# }
4198
# {{end}}
4199
# ]
4200
# }]
4201
# template.app-sync-status-unknown: |
4202
# email:
4203
# subject: Application {{.app.metadata.name}} sync status is 'Unknown'
4204
# message: |
4205
# {{if eq .serviceType "slack"}}:exclamation:{{end}} Application {{.app.metadata.name}} sync is 'Unknown'.
4206
# Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
4207
# {{if ne .serviceType "slack"}}
4208
# {{range $c := .app.status.conditions}}
4209
# * {{$c.message}}
4210
# {{end}}
4211
# {{end}}
4212
# slack:
4213
# attachments: |-
4214
# [{
4215
# "title": "{{ .app.metadata.name}}",
4216
# "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
4217
# "color": "#E96D76",
4218
# "fields": [
4219
# {
4220
# "title": "Sync Status",
4221
# "value": "{{.app.status.sync.status}}",
4222
# "short": true
4223
# },
4224
# {
4225
# "title": "Repository",
4226
# "value": "{{.app.spec.source.repoURL}}",
4227
# "short": true
4228
# }
4229
# {{range $index, $c := .app.status.conditions}}
4230
# {{if not $index}},{{end}}
4231
# {{if $index}},{{end}}
4232
# {
4233
# "title": "{{$c.type}}",
4234
# "value": "{{$c.message}}",
4235
# "short": true
4236
# }
4237
# {{end}}
4238
# ]
4239
# }]
4240
# template.app-sync-succeeded: |
4241
# email:
4242
# subject: Application {{.app.metadata.name}} has been successfully synced.
4243
# message: |
4244
# {{if eq .serviceType "slack"}}:white_check_mark:{{end}} Application {{.app.metadata.name}} has been successfully synced at {{.app.status.operationState.finishedAt}}.
4245
# Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true .
4246
# slack:
4247
# attachments: |-
4248
# [{
4249
# "title": "{{ .app.metadata.name}}",
4250
# "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
4251
# "color": "#18be52",
4252
# "fields": [
4253
# {
4254
# "title": "Sync Status",
4255
# "value": "{{.app.status.sync.status}}",
4256
# "short": true
4257
# },
4258
# {
4259
# "title": "Repository",
4260
# "value": "{{.app.spec.source.repoURL}}",
4261
# "short": true
4262
# }
4263
# {{range $index, $c := .app.status.conditions}}
4264
# {{if not $index}},{{end}}
4265
# {{if $index}},{{end}}
4266
# {
4267
# "title": "{{$c.type}}",
4268
# "value": "{{$c.message}}",
4269
# "short": true
4270
# }
4271
# {{end}}
4272
# ]
4273
# }]
4274
4275
# -- The trigger defines the condition when the notification should be sent
4276
## For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/
4277
triggers: {}
4278
# trigger.on-deployed: |
4279
# - description: Application is synced and healthy. Triggered once per commit.
4280
# oncePer: app.status.sync.revision
4281
# send:
4282
# - app-deployed
4283
# when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy'
4284
# trigger.on-health-degraded: |
4285
# - description: Application has degraded
4286
# send:
4287
# - app-health-degraded
4288
# when: app.status.health.status == 'Degraded'
4289
# trigger.on-sync-failed: |
4290
# - description: Application syncing has failed
4291
# send:
4292
# - app-sync-failed
4293
# when: app.status.operationState.phase in ['Error', 'Failed']
4294
# trigger.on-sync-running: |
4295
# - description: Application is being synced
4296
# send:
4297
# - app-sync-running
4298
# when: app.status.operationState.phase in ['Running']
4299
# trigger.on-sync-status-unknown: |
4300
# - description: Application status is 'Unknown'
4301
# send:
4302
# - app-sync-status-unknown
4303
# when: app.status.sync.status == 'Unknown'
4304
# trigger.on-sync-succeeded: |
4305
# - description: Application syncing has succeeded
4306
# send:
4307
# - app-sync-succeeded
4308
# when: app.status.operationState.phase in ['Succeeded']
4309
#
4310
# For more information: https://argo-cd.readthedocs.io/en/stable/operator-manual/notifications/triggers/#default-triggers
4311
# defaultTriggers: |
4312
# - on-sync-status-unknown
4313
4314
# Default notifications controller's network policy
4315
networkPolicy:
4316
# -- Default network policy rules used by notifications controller
4317
# @default -- `false` (defaults to global.networkPolicy.create)
4318
create: false
4319
commitServer:
4320
# -- Enable commit server
4321
enabled: false
4322
# -- Commit server name
4323
name: commit-server
4324
# -- Runtime class name for the commit server
4325
# @default -- `""` (defaults to global.runtimeClassName)
4326
runtimeClassName: ""
4327
## commit server controller image
4328
image:
4329
# -- Repository to use for the commit server
4330
# @default -- `""` (defaults to global.image.repository)
4331
repository: ""
4332
# -- Tag to use for the commit server
4333
# @default -- `""` (defaults to global.image.tag)
4334
tag: ""
4335
# -- Image pull policy for the commit server
4336
# @default -- `""` (defaults to global.image.imagePullPolicy)
4337
imagePullPolicy: ""
4338
# -- commit server command line flags
4339
extraArgs: []
4340
# -- Environment variables to pass to the commit server
4341
extraEnv: []
4342
# - name: "MY_VAR"
4343
# value: "value"
4344
4345
# -- envFrom to pass to the commit server
4346
# @default -- `[]` (See [values.yaml])
4347
extraEnvFrom: []
4348
# - configMapRef:
4349
# name: config-map-name
4350
# - secretRef:
4351
# name: secret-name
4352
4353
# -- List of extra mounts to add (normally used with extraVolumes)
4354
extraVolumeMounts: []
4355
# -- List of extra volumes to add
4356
extraVolumes: []
4357
metrics:
4358
# -- Enables prometheus metrics server
4359
enabled: false
4360
service:
4361
# -- Metrics service type
4362
type: ClusterIP
4363
# -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP)
4364
clusterIP: ""
4365
# -- Metrics service annotations
4366
annotations: {}
4367
# -- Metrics service labels
4368
labels: {}
4369
# -- Metrics service port
4370
servicePort: 8087
4371
# -- Metrics service port name
4372
portName: metrics
4373
## commit server service configuration
4374
service:
4375
# -- commit server service annotations
4376
annotations: {}
4377
# -- commit server service labels
4378
labels: {}
4379
# -- commit server service port
4380
port: 8086
4381
# -- commit server service port name
4382
portName: server
4383
# -- Automount API credentials for the Service Account into the pod.
4384
automountServiceAccountToken: false
4385
serviceAccount:
4386
# -- Create commit server service account
4387
create: true
4388
# -- commit server service account name
4389
name: argocd-commit-server
4390
# -- Annotations applied to created service account
4391
annotations: {}
4392
# -- Labels applied to created service account
4393
labels: {}
4394
# -- Automount API credentials for the Service Account
4395
automountServiceAccountToken: true
4396
# -- Annotations to be added to commit server Deployment
4397
deploymentAnnotations: {}
4398
# -- Labels for the commit server Deployment
4399
deploymentLabels: {}
4400
# -- Annotations for the commit server pods
4401
podAnnotations: {}
4402
# -- Labels for the commit server pods
4403
podLabels: {}
4404
# -- Resource limits and requests for the commit server pods.
4405
resources: {}
4406
# limits:
4407
# cpu: 100m
4408
# memory: 128Mi
4409
# requests:
4410
# cpu: 100m
4411
# memory: 128Mi
4412
4413
# -- [DNS configuration]
4414
dnsConfig: {}
4415
# -- Alternative DNS policy for commit server pods
4416
dnsPolicy: "ClusterFirst"
4417
# -- commit server container-level security context
4418
# @default -- See [values.yaml]
4419
containerSecurityContext:
4420
runAsNonRoot: true
4421
readOnlyRootFilesystem: true
4422
allowPrivilegeEscalation: false
4423
capabilities:
4424
drop:
4425
- ALL
4426
seccompProfile:
4427
type: RuntimeDefault
4428
## Probes for commit server (optional)
4429
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
4430
readinessProbe:
4431
# -- Enable Kubernetes liveness probe for commit server
4432
enabled: true
4433
# -- Http path to use for the readiness probe
4434
httpPath: /healthz
4435
# -- Number of seconds after the container has started before [probe] is initiated
4436
initialDelaySeconds: 5
4437
# -- How often (in seconds) to perform the [probe]
4438
periodSeconds: 10
4439
# -- Number of seconds after which the [probe] times out
4440
timeoutSeconds: 1
4441
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
4442
failureThreshold: 3
4443
livenessProbe:
4444
# -- Enable Kubernetes liveness probe for commit server
4445
enabled: true
4446
# -- Http path to use for the liveness probe
4447
httpPath: /healthz?full=true
4448
# -- Number of seconds after the container has started before [probe] is initiated
4449
initialDelaySeconds: 30
4450
# -- How often (in seconds) to perform the [probe]
4451
periodSeconds: 30
4452
# -- Number of seconds after which the [probe] times out
4453
timeoutSeconds: 5
4454
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
4455
failureThreshold: 3
4456
## Startup probe for commit server (optional)
4457
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
4458
startupProbe:
4459
# -- Enable Kubernetes startup probe for commit server
4460
enabled: false
4461
# -- Http path to use for the startup probe
4462
httpPath: /healthz
4463
# -- Number of seconds after the container has started before [probe] is initiated
4464
initialDelaySeconds: 10
4465
# -- How often (in seconds) to perform the [probe]
4466
periodSeconds: 10
4467
# -- Number of seconds after which the [probe] times out
4468
timeoutSeconds: 1
4469
# -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded
4470
failureThreshold: 20
4471
# -- terminationGracePeriodSeconds for container lifecycle hook
4472
terminationGracePeriodSeconds: 30
4473
# -- [Node selector]
4474
# @default -- `{}` (defaults to global.nodeSelector)
4475
nodeSelector: {}
4476
# -- [Tolerations] for use with node taints
4477
# @default -- `[]` (defaults to global.tolerations)
4478
tolerations: []
4479
# -- Assign custom [affinity] rules
4480
# @default -- `{}` (defaults to global.affinity preset)
4481
affinity: {}
4482
# -- Assign custom [TopologySpreadConstraints] rules to the commit server
4483
# @default -- `[]` (defaults to global.topologySpreadConstraints)
4484
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
4485
## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
4486
topologySpreadConstraints: []
4487
# - maxSkew: 1
4488
# topologyKey: topology.kubernetes.io/zone
4489
# whenUnsatisfiable: DoNotSchedule
4490
4491
# -- Deployment strategy to be added to the commit server Deployment
4492
deploymentStrategy: {}
4493
# type: RollingUpdate
4494
# rollingUpdate:
4495
# maxSurge: 25%
4496
# maxUnavailable: 25%
4497
4498
# -- Priority class for the commit server pods
4499
# @default -- `""` (defaults to global.priorityClassName)
4500
priorityClassName: ""
4501
# Default commit server's network policy
4502
networkPolicy:
4503
# -- Default network policy rules used by commit server
4504
# @default -- `false` (defaults to global.networkPolicy.create)
4505
create: false
4506
## Commit server Vertical Pod Autoscaler
4507
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/
4508
vpa:
4509
# -- Deploy a [VerticalPodAutoscaler](https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically/) for the commit server
4510
enabled: false
4511
# -- Labels to be added to commit server vpa
4512
labels: {}
4513
# -- Annotations to be added to commit server vpa
4514
annotations: {}
4515
# -- One of the VPA operation modes
4516
## Ref: https://kubernetes.io/docs/concepts/workloads/autoscaling/#scaling-workloads-vertically
4517
## Note: Recreate update mode requires more than one replica unless the min-replicas VPA controller flag is overridden
4518
updateMode: Initial
4519
# -- Controls how VPA computes the recommended resources for commit server container
4520
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/examples/hamster.yaml
4521
containerPolicy: {}
4522
# controlledResources: ["cpu", "memory"]
4523
# minAllowed:
4524
# cpu: 250m
4525
# memory: 256Mi
4526
# maxAllowed:
4527
# cpu: 1
4528
# memory: 1Gi
4529
# -- The recommenders that will provide recommendations for vertical scaling. Only relevant if a named VPA recommender (e.g. one started with a custom recommender name) is in use; leave unset to use the cluster's default recommender
4530
## Ref: https://github.com/kubernetes/autoscaler/blob/master/vertical-pod-autoscaler/docs/api.md#verticalpodautoscalerspec
4531
## NOTE: specify only zero or one recommender as of VPA 1.7.1
4532
recommenders: []
4533
# -- Configures a startup resource boost for faster cold-start (application boot) resource allocation. NOTE: startupBoost is currently a GKE-specific extension to the VPA API and is only honored on GKE clusters; it is rendered only when set
4534
## Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/boost-application-startup
4535
startupBoost: {}
4536
# cpu:
4537
# type: Factor
4538
# factor: 2
4539
# durationSeconds: 10
4540

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.