github.com/verrazzano/verrazzano@v1.7.0/platform-operator/thirdparty/charts/argo-cd/values.yaml (about) 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 Kubernetes version, which is used to evaluate certain manifests 10 kubeVersionOverride: "" 11 # Override APIVersions 12 # If you want to template helm charts but cannot access k8s API server 13 # you can set api versions here 14 apiVersionOverrides: 15 # -- String to override apiVersion of GKE resources rendered by this helm chart 16 cloudgoogle: "" # cloud.google.com/v1 17 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 25 openshift: 26 # -- enables using arbitrary uid for argo repo server 27 enabled: false 28 29 ## Custom resource configuration 30 crds: 31 # -- Install and upgrade CRDs 32 install: true 33 # -- Keep CRDs on chart uninstall 34 keep: true 35 # -- Annotations to be added to all CRDs 36 annotations: {} 37 # -- Addtional labels to be added to all CRDs 38 additionalLabels: {} 39 40 ## Globally shared configuration 41 global: 42 # -- Common labels for the all resources 43 additionalLabels: {} 44 # app: argo-cd 45 46 # -- Number of old deployment ReplicaSets to retain. The rest will be garbage collected. 47 revisionHistoryLimit: 3 48 49 # Default image used by all components 50 image: 51 # -- If defined, a repository applied to all Argo CD deployments 52 repository: quay.io/argoproj/argocd 53 # -- Overrides the global Argo CD image tag whose default is the chart appVersion 54 tag: "" 55 # -- If defined, a imagePullPolicy applied to all Argo CD deployments 56 imagePullPolicy: IfNotPresent 57 58 # -- Secrets with credentials to pull images from a private registry 59 imagePullSecrets: [] 60 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 68 # -- Annotations for the all deployed Statefulsets 69 statefulsetAnnotations: {} 70 71 # -- Annotations for the all deployed Deployments 72 deploymentAnnotations: {} 73 74 # -- Annotations for the all deployed pods 75 podAnnotations: {} 76 77 # -- Labels for the all deployed pods 78 podLabels: {} 79 80 # -- Add Prometheus scrape annotations to all metrics services. This can be used as an alternative to the ServiceMonitors. 81 addPrometheusAnnotations: false 82 83 # -- Toggle and define pod-level security context. 84 # @default -- `{}` (See [values.yaml]) 85 securityContext: {} 86 # runAsUser: 999 87 # runAsGroup: 999 88 # fsGroup: 999 89 90 # -- Mapping between IP and hostnames that will be injected as entries in the pod's hosts files 91 hostAliases: [] 92 # - ip: 10.20.30.40 93 # hostnames: 94 # - git.myhostname 95 96 # Default network policy rules used by all components 97 networkPolicy: 98 # -- Create NetworkPolicy objects for all components 99 create: false 100 # -- Default deny all ingress traffic 101 defaultDenyIngress: false 102 103 # -- Default priority class for all components 104 priorityClassName: "" 105 106 # -- Default node selector for all components 107 nodeSelector: {} 108 109 # -- Default tolerations for all components 110 tolerations: [] 111 112 # Default affinity preset for all components 113 affinity: 114 # -- Default pod anti-affinity rules. Either: `none`, `soft` or `hard` 115 podAntiAffinity: soft 116 # Node affinity rules 117 nodeAffinity: 118 # -- Default node affinity rules. Either: `none`, `soft` or `hard` 119 type: hard 120 # -- Default match expressions for node affinity 121 matchExpressions: [] 122 # - key: topology.kubernetes.io/zone 123 # operator: In 124 # values: 125 # - antarctica-east1 126 # - antarctica-west1 127 128 # -- Default [TopologySpreadConstraints] rules for all components 129 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-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 146 # -- Annotations for the all deployed Certificates 147 certificateAnnotations: {} 148 149 ## Argo Configs 150 configs: 151 # General Argo CD configuration 152 ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/argocd-cm.yaml 153 cm: 154 # -- Create the argocd-cm configmap for [declarative setup] 155 create: true 156 157 # -- Annotations to be added to argocd-cm configmap 158 annotations: {} 159 160 # -- Argo CD's externally facing base URL (optional). Required when configuring SSO 161 url: "" 162 163 # -- The name of tracking label used by Argo CD for resource pruning 164 # @default -- Defaults to app.kubernetes.io/instance 165 application.instanceLabelKey: argocd.argoproj.io/instance 166 167 # -- Enable logs RBAC enforcement 168 ## Ref: https://argo-cd.readthedocs.io/en/latest/operator-manual/upgrading/2.3-2.4/#enable-logs-rbac-enforcement 169 server.rbac.log.enforce.enable: false 170 171 # -- Enable exec feature in Argo UI 172 ## Ref: https://argo-cd.readthedocs.io/en/latest/operator-manual/rbac/#exec-resource 173 exec.enabled: false 174 175 # -- Enable local admin user 176 ## Ref: https://argo-cd.readthedocs.io/en/latest/faq/#how-to-disable-admin-user 177 admin.enabled: true 178 179 # -- Timeout to discover if a new manifests version got published to the repository 180 timeout.reconciliation: 180s 181 182 # -- Timeout to refresh application data as well as target manifests cache 183 timeout.hard.reconciliation: 0s 184 185 # Dex configuration 186 # dex.config: | 187 # connectors: 188 # # GitHub example 189 # - type: github 190 # id: github 191 # name: GitHub 192 # config: 193 # clientID: aabbccddeeff00112233 194 # clientSecret: $dex.github.clientSecret # Alternatively $<some_K8S_secret>:dex.github.clientSecret 195 # orgs: 196 # - name: your-github-org 197 198 # OIDC configuration as an alternative to dex (optional). 199 # oidc.config: | 200 # name: AzureAD 201 # issuer: https://login.microsoftonline.com/TENANT_ID/v2.0 202 # clientID: CLIENT_ID 203 # clientSecret: $oidc.azuread.clientSecret 204 # rootCA: | 205 # -----BEGIN CERTIFICATE----- 206 # ... encoded certificate data here ... 207 # -----END CERTIFICATE----- 208 # requestedIDTokenClaims: 209 # groups: 210 # essential: true 211 # requestedScopes: 212 # - openid 213 # - profile 214 # - email 215 216 # Argo CD configuration parameters 217 ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/argocd-cmd-params-cm.yaml 218 params: 219 # -- Create the argocd-cmd-params-cm configmap 220 # If false, it is expected the configmap will be created by something else. 221 create: true 222 223 # -- Annotations to be added to the argocd-cmd-params-cm ConfigMap 224 annotations: {} 225 226 ## Generic parameters 227 # -- Open-Telemetry collector address: (e.g. "otel-collector:4317") 228 otlp.address: '' 229 230 ## Controller Properties 231 # -- Number of application status processors 232 controller.status.processors: 20 233 # -- Number of application operation processors 234 controller.operation.processors: 10 235 # -- Specifies timeout between application self heal attempts 236 controller.self.heal.timeout.seconds: 5 237 # -- Repo server RPC call timeout seconds. 238 controller.repo.server.timeout.seconds: 60 239 240 ## Server properties 241 # -- Run server without TLS 242 server.insecure: false 243 # -- Value for base href in index.html. Used if Argo CD is running behind reverse proxy under subpath different from / 244 server.basehref: / 245 # -- Used if Argo CD is running behind reverse proxy under subpath different from / 246 server.rootpath: '' 247 # -- Directory path that contains additional static assets 248 server.staticassets: /shared/app 249 # -- Disable Argo CD RBAC for user authentication 250 server.disable.auth: false 251 # -- Enable GZIP compression 252 server.enable.gzip: true 253 # -- Set X-Frame-Options header in HTTP responses to value. To disable, set to "". 254 server.x.frame.options: sameorigin 255 256 ## Repo-server properties 257 # -- Limit on number of concurrent manifests generate requests. Any value less the 1 means no limit. 258 reposerver.parallelism.limit: 0 259 260 ## ApplicationSet Properties 261 # -- Modify how application is synced between the generator and the cluster. One of: `sync`, `create-only`, `create-update`, `create-delete` 262 applicationsetcontroller.policy: sync 263 # -- Enables use of the Progressive Syncs capability 264 applicationsetcontroller.enable.progressive.syncs: false 265 266 # Argo CD RBAC policy configuration 267 ## Ref: https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/rbac.md 268 rbac: 269 # -- Create the argocd-rbac-cm configmap with ([Argo CD RBAC policy]) definitions. 270 # If false, it is expected the configmap will be created by something else. 271 # Argo CD will not work if there is no configmap created with the name above. 272 create: true 273 274 # -- Annotations to be added to argocd-rbac-cm configmap 275 annotations: {} 276 277 # -- The name of the default role which Argo CD will falls back to, when authorizing API requests (optional). 278 # If omitted or empty, users may be still be able to login, but will see no apps, projects, etc... 279 policy.default: '' 280 281 # -- File containing user-defined policies and role definitions. 282 # @default -- `''` (See [values.yaml]) 283 policy.csv: '' 284 # Policy rules are in the form: 285 # p, subject, resource, action, object, effect 286 # Role definitions and bindings are in the form: 287 # g, subject, inherited-subject 288 # policy.csv | 289 # p, role:org-admin, applications, *, */*, allow 290 # p, role:org-admin, clusters, get, *, allow 291 # p, role:org-admin, repositories, *, *, allow 292 # p, role:org-admin, logs, get, *, allow 293 # p, role:org-admin, exec, create, */*, allow 294 # g, your-github-org:your-team, role:org-admin 295 296 # -- OIDC scopes to examine during rbac enforcement (in addition to `sub` scope). 297 # The scope value can be a string, or a list of strings. 298 scopes: "[groups]" 299 300 # GnuPG public keys for commit verification 301 ## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/gpg-verification/ 302 gpg: 303 # -- Annotations to be added to argocd-gpg-keys-cm configmap 304 annotations: {} 305 306 # -- [GnuPG] public keys to add to the keyring 307 # @default -- `{}` (See [values.yaml]) 308 ## Note: Public keys should be exported with `gpg --export --armor <KEY>` 309 keys: {} 310 # 4AEE18F83AFDEB23: | 311 # -----BEGIN PGP PUBLIC KEY BLOCK----- 312 # ... 313 # -----END PGP PUBLIC KEY BLOCK----- 314 315 # SSH known hosts for Git repositories 316 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#ssh-known-host-public-keys 317 ssh: 318 # -- Annotations to be added to argocd-ssh-known-hosts-cm configmap 319 annotations: {} 320 321 # -- Known hosts to be added to the known host list by default. 322 # @default -- See [values.yaml] 323 knownHosts: | 324 [ssh.github.com]:443 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg= 325 [ssh.github.com]:443 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl 326 [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= 327 bitbucket.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPIQmuzMBuKdWeF4+a2sjSSpBK0iqitSQ+5BM9KhpexuGt20JpTVM7u5BDZngncgrqDMbWdxMWWOGtZ9UgbqgZE= 328 bitbucket.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO 329 bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw== 330 github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg= 331 github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl 332 github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk= 333 gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY= 334 gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf 335 gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9 336 ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H 337 vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H 338 339 # -- Additional known hosts for private repositories 340 extraHosts: '' 341 342 # Repository TLS certificates 343 # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#repositories-using-self-signed-tls-certificates-or-are-signed-by-custom-ca 344 tls: 345 # -- Annotations to be added to argocd-tls-certs-cm configmap 346 annotations: {} 347 348 # -- TLS certificates for Git repositories 349 # @default -- `{}` (See [values.yaml]) 350 certificates: {} 351 # server.example.com: | 352 # -----BEGIN CERTIFICATE----- 353 # ... 354 # -----END CERTIFICATE----- 355 356 # ConfigMap for Config Management Plugins 357 # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/config-management-plugins/ 358 cmp: 359 # -- Create the argocd-cmp-cm configmap 360 create: false 361 362 # -- Annotations to be added to argocd-cmp-cm configmap 363 annotations: {} 364 365 # -- Plugin yaml files to be added to argocd-cmp-cm 366 plugins: {} 367 # --- First plugin 368 # my-plugin: 369 # init: 370 # command: [sh] 371 # args: [-c, 'echo "Initializing..."'] 372 # generate: 373 # command: [sh, -c] 374 # args: 375 # - | 376 # 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\"}}}" 377 # discover: 378 # fileName: "./subdir/s*.yaml" 379 # find: 380 # glob: "**/Chart.yaml" 381 # command: [sh, -c, find . -name env.yaml] 382 383 # --- Second plugin 384 # my-plugin2: 385 # init: 386 # command: [sh] 387 # args: [-c, 'echo "Initializing..."'] 388 # generate: 389 # command: [sh, -c] 390 # args: 391 # - | 392 # 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\"}}}" 393 # discover: 394 # fileName: "./subdir/s*.yaml" 395 # find: 396 # glob: "**/Chart.yaml" 397 # command: [sh, -c, find . -name env.yaml] 398 399 # -- Provide one or multiple [external cluster credentials] 400 # @default -- `[]` (See [values.yaml]) 401 ## Ref: 402 ## - https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/#clusters 403 ## - https://argo-cd.readthedocs.io/en/stable/operator-manual/security/#external-cluster-credentials 404 ## - https://argo-cd.readthedocs.io/en/stable/user-guide/projects/#project-scoped-repositories-and-clusters 405 clusterCredentials: [] 406 # - name: mycluster 407 # server: https://mycluster.com 408 # labels: {} 409 # annotations: {} 410 # config: 411 # bearerToken: "<authentication token>" 412 # tlsClientConfig: 413 # insecure: false 414 # caData: "<base64 encoded certificate>" 415 # - name: mycluster2 416 # server: https://mycluster2.com 417 # labels: {} 418 # annotations: {} 419 # namespaces: namespace1,namespace2 420 # clusterResources: true 421 # config: 422 # bearerToken: "<authentication token>" 423 # tlsClientConfig: 424 # insecure: false 425 # caData: "<base64 encoded certificate>" 426 # - name: mycluster3-project-scoped 427 # server: https://mycluster3.com 428 # labels: {} 429 # annotations: {} 430 # project: my-project1 431 # config: 432 # bearerToken: "<authentication token>" 433 # tlsClientConfig: 434 # insecure: false 435 # caData: "<base64 encoded certificate>" 436 437 # DEPRECATED - Moved to configs.ssh.annotations 438 # knownHostsAnnotations: {} 439 # DEPRECATED - Moved to configs.ssh.knownHosts 440 # knownHosts: {} 441 442 # DEPRECATED - Moved to configs.tls.annotations 443 # tlsCertsAnnotations: {} 444 # DEPRECATED - Moved to configs.tls.certificates 445 # tlsCerts: {} 446 447 # -- Repository credentials to be used as Templates for other repos 448 ## Creates a secret for each key/value specified below to create repository credentials 449 credentialTemplates: {} 450 # github-enterprise-creds-1: 451 # url: https://github.com/argoproj 452 # githubAppID: 1 453 # githubAppInstallationID: 2 454 # githubAppEnterpriseBaseUrl: https://ghe.example.com/api/v3 455 # githubAppPrivateKey: | 456 # -----BEGIN OPENSSH PRIVATE KEY----- 457 # ... 458 # -----END OPENSSH PRIVATE KEY----- 459 # https-creds: 460 # url: https://github.com/argoproj 461 # password: my-password 462 # username: my-username 463 # ssh-creds: 464 # url: git@github.com:argoproj-labs 465 # sshPrivateKey: | 466 # -----BEGIN OPENSSH PRIVATE KEY----- 467 # ... 468 # -----END OPENSSH PRIVATE KEY----- 469 470 # -- Annotations to be added to `configs.credentialTemplates` Secret 471 credentialTemplatesAnnotations: {} 472 473 # -- Repositories list to be used by applications 474 ## Creates a secret for each key/value specified below to create repositories 475 ## Note: the last example in the list would use a repository credential template, configured under "configs.credentialTemplates". 476 repositories: {} 477 # istio-helm-repo: 478 # url: https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts 479 # name: istio.io 480 # type: helm 481 # private-helm-repo: 482 # url: https://my-private-chart-repo.internal 483 # name: private-repo 484 # type: helm 485 # password: my-password 486 # username: my-username 487 # private-repo: 488 # url: https://github.com/argoproj/private-repo 489 490 # -- Annotations to be added to `configs.repositories` Secret 491 repositoriesAnnotations: {} 492 493 # Argo CD sensitive data 494 # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#sensitive-data-and-sso-client-secrets 495 secret: 496 # -- Create the argocd-secret 497 createSecret: true 498 # -- Labels to be added to argocd-secret 499 labels: {} 500 # -- Annotations to be added to argocd-secret 501 annotations: {} 502 503 # -- Shared secret for authenticating GitHub webhook events 504 githubSecret: "" 505 # -- Shared secret for authenticating GitLab webhook events 506 gitlabSecret: "" 507 # -- Shared secret for authenticating BitbucketServer webhook events 508 bitbucketServerSecret: "" 509 # -- UUID for authenticating Bitbucket webhook events 510 bitbucketUUID: "" 511 # -- Shared secret for authenticating Gogs webhook events 512 gogsSecret: "" 513 514 # -- add additional secrets to be added to argocd-secret 515 ## Custom secrets. Useful for injecting SSO secrets into environment variables. 516 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/#sensitive-data-and-sso-client-secrets 517 ## Note that all values must be non-empty. 518 extra: 519 {} 520 # LDAP_PASSWORD: "mypassword" 521 522 # -- Argo TLS Data 523 # DEPRECATED - Use server.certificate or server.certificateSecret 524 # argocdServerTlsConfig: 525 # key: '' 526 # crt: '' 527 528 # -- Bcrypt hashed admin password 529 ## Argo expects the password in the secret to be bcrypt hashed. You can create this hash with 530 ## `htpasswd -nbBC 10 "" $ARGO_PWD | tr -d ':\n' | sed 's/$2y/$2a/'` 531 argocdServerAdminPassword: "" 532 # -- Admin password modification time. Eg. `"2006-01-02T15:04:05Z"` 533 # @default -- `""` (defaults to current time) 534 argocdServerAdminPasswordMtime: "" 535 536 # -- Define custom [CSS styles] for your argo instance. 537 # This setting will automatically mount the provided CSS and reference it in the argo configuration. 538 # @default -- `""` (See [values.yaml]) 539 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/custom-styles/ 540 styles: "" 541 # styles: | 542 # .sidebar { 543 # background: linear-gradient(to bottom, #999, #777, #333, #222, #111); 544 # } 545 546 # -- Array of extra K8s manifests to deploy 547 ## Note: Supports use of custom Helm templates 548 extraObjects: [] 549 # - apiVersion: secrets-store.csi.x-k8s.io/v1 550 # kind: SecretProviderClass 551 # metadata: 552 # name: argocd-secrets-store 553 # spec: 554 # provider: aws 555 # parameters: 556 # objects: | 557 # - objectName: "argocd" 558 # objectType: "secretsmanager" 559 # jmesPath: 560 # - path: "client_id" 561 # objectAlias: "client_id" 562 # - path: "client_secret" 563 # objectAlias: "client_secret" 564 # secretObjects: 565 # - data: 566 # - key: client_id 567 # objectName: client_id 568 # - key: client_secret 569 # objectName: client_secret 570 # secretName: argocd-secrets-store 571 # type: Opaque 572 # labels: 573 # app.kubernetes.io/part-of: argocd 574 575 ## Application controller 576 controller: 577 # -- Application controller name string 578 name: application-controller 579 580 # -- The number of application controller pods to run. 581 # Additional replicas will cause sharding of managed clusters across number of replicas. 582 replicas: 1 583 584 ## Application controller Pod Disruption Budget 585 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 586 pdb: 587 # -- Deploy a [PodDisruptionBudget] for the application controller 588 enabled: false 589 # -- Labels to be added to application controller pdb 590 labels: {} 591 # -- Annotations to be added to application controller pdb 592 annotations: {} 593 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 594 # @default -- `""` (defaults to 0 if not specified) 595 minAvailable: "" 596 # -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%). 597 ## Has higher precedence over `controller.pdb.minAvailable` 598 maxUnavailable: "" 599 600 ## Application controller image 601 image: 602 # -- Repository to use for the application controller 603 # @default -- `""` (defaults to global.image.repository) 604 repository: "" 605 # -- Tag to use for the application controller 606 # @default -- `""` (defaults to global.image.tag) 607 tag: "" 608 # -- Image pull policy for the application controller 609 # @default -- `""` (defaults to global.image.imagePullPolicy) 610 imagePullPolicy: "" 611 612 # -- Secrets with credentials to pull images from a private registry 613 # @default -- `[]` (defaults to global.imagePullSecrets) 614 imagePullSecrets: [] 615 616 # -- DEPRECATED - Application controller commandline flags 617 args: {} 618 # DEPRECATED - Use configs.params to override 619 # # -- define the application controller `--status-processors` 620 # statusProcessors: "20" 621 # # -- define the application controller `--operation-processors` 622 # operationProcessors: "10" 623 # # -- define the application controller `--app-hard-resync` 624 # appHardResyncPeriod: "0" 625 # # -- define the application controller `--app-resync` 626 # appResyncPeriod: "180" 627 # # -- define the application controller `--self-heal-timeout-seconds` 628 # selfHealTimeout: "5" 629 # # -- define the application controller `--repo-server-timeout-seconds` 630 # repoServerTimeoutSeconds: "60" 631 632 # -- Additional command line arguments to pass to application controller 633 extraArgs: [] 634 635 # -- Environment variables to pass to application controller 636 env: [] 637 638 # -- envFrom to pass to application controller 639 # @default -- `[]` (See [values.yaml]) 640 envFrom: [] 641 # - configMapRef: 642 # name: config-map-name 643 # - secretRef: 644 # name: secret-name 645 646 # -- Additional containers to be added to the application controller pod 647 ## Note: Supports use of custom Helm templates 648 extraContainers: [] 649 650 # -- Init containers to add to the application controller pod 651 ## If your target Kubernetes cluster(s) require a custom credential (exec) plugin 652 ## you could use this (and the same in the server pod) to provide such executable 653 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins 654 ## Note: Supports use of custom Helm templates 655 initContainers: [] 656 # - name: download-tools 657 # image: alpine:3 658 # command: [sh, -c] 659 # args: 660 # - wget -qO kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.0.25/kubelogin-linux-amd64.zip && 661 # unzip kubelogin.zip && mv bin/linux_amd64/kubelogin /custom-tools/ 662 # volumeMounts: 663 # - mountPath: /custom-tools 664 # name: custom-tools 665 666 # -- Additional volumeMounts to the application controller main container 667 volumeMounts: [] 668 # - mountPath: /usr/local/bin/kubelogin 669 # name: custom-tools 670 # subPath: kubelogin 671 672 # -- Additional volumes to the application controller pod 673 volumes: [] 674 # - name: custom-tools 675 # emptyDir: {} 676 677 # -- Annotations for the application controller StatefulSet 678 statefulsetAnnotations: {} 679 680 # -- Annotations to be added to application controller pods 681 podAnnotations: {} 682 683 # -- Labels to be added to application controller pods 684 podLabels: {} 685 686 # -- Resource limits and requests for the application controller pods 687 resources: {} 688 # limits: 689 # cpu: 500m 690 # memory: 512Mi 691 # requests: 692 # cpu: 250m 693 # memory: 256Mi 694 695 # Application controller container ports 696 containerPorts: 697 # -- Metrics container port 698 metrics: 8082 699 700 # -- Host Network for application controller pods 701 hostNetwork: false 702 703 # -- [DNS configuration] 704 dnsConfig: {} 705 # -- Alternative DNS policy for application controller pods 706 dnsPolicy: "ClusterFirst" 707 708 # -- Application controller container-level security context 709 # @default -- See [values.yaml] 710 containerSecurityContext: 711 runAsNonRoot: true 712 readOnlyRootFilesystem: true 713 allowPrivilegeEscalation: false 714 seccompProfile: 715 type: RuntimeDefault 716 capabilities: 717 drop: 718 - ALL 719 720 # Readiness probe for application controller 721 ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 722 readinessProbe: 723 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 724 failureThreshold: 3 725 # -- Number of seconds after the container has started before [probe] is initiated 726 initialDelaySeconds: 10 727 # -- How often (in seconds) to perform the [probe] 728 periodSeconds: 10 729 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 730 successThreshold: 1 731 # -- Number of seconds after which the [probe] times out 732 timeoutSeconds: 1 733 734 # -- Priority class for the application controller pods 735 # @default -- `""` (defaults to global.priorityClassName) 736 priorityClassName: "" 737 738 # -- [Node selector] 739 # @default -- `{}` (defaults to global.nodeSelector) 740 nodeSelector: {} 741 742 # -- [Tolerations] for use with node taints 743 # @default -- `[]` (defaults to global.tolerations) 744 tolerations: [] 745 746 # -- Assign custom [affinity] rules to the deployment 747 # @default -- `{}` (defaults to global.affinity preset) 748 affinity: {} 749 750 # -- Assign custom [TopologySpreadConstraints] rules to the application controller 751 # @default -- `[]` (defaults to global.topologySpreadConstraints) 752 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 753 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 754 topologySpreadConstraints: [] 755 # - maxSkew: 1 756 # topologyKey: topology.kubernetes.io/zone 757 # whenUnsatisfiable: DoNotSchedule 758 759 serviceAccount: 760 # -- Create a service account for the application controller 761 create: true 762 # -- Service account name 763 name: argocd-application-controller 764 # -- Annotations applied to created service account 765 annotations: {} 766 # -- Labels applied to created service account 767 labels: {} 768 # -- Automount API credentials for the Service Account 769 automountServiceAccountToken: true 770 771 ## Application controller metrics configuration 772 metrics: 773 # -- Deploy metrics service 774 enabled: false 775 applicationLabels: 776 # -- Enables additional labels in argocd_app_labels metric 777 enabled: false 778 # -- Additional labels 779 labels: [] 780 service: 781 # -- Metrics service type 782 type: ClusterIP 783 # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) 784 clusterIP: "" 785 # -- Metrics service annotations 786 annotations: {} 787 # -- Metrics service labels 788 labels: {} 789 # -- Metrics service port 790 servicePort: 8082 791 # -- Metrics service port name 792 portName: http-metrics 793 serviceMonitor: 794 # -- Enable a prometheus ServiceMonitor 795 enabled: false 796 # -- Prometheus ServiceMonitor interval 797 interval: 30s 798 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 799 relabelings: [] 800 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 801 metricRelabelings: [] 802 # -- Prometheus ServiceMonitor selector 803 selector: {} 804 # prometheus: kube-prometheus 805 806 # -- Prometheus ServiceMonitor scheme 807 scheme: "" 808 # -- Prometheus ServiceMonitor tlsConfig 809 tlsConfig: {} 810 # -- Prometheus ServiceMonitor namespace 811 namespace: "" # "monitoring" 812 # -- Prometheus ServiceMonitor labels 813 additionalLabels: {} 814 # -- Prometheus ServiceMonitor annotations 815 annotations: {} 816 rules: 817 # -- Deploy a PrometheusRule for the application controller 818 enabled: false 819 # -- PrometheusRule namespace 820 namespace: "" # "monitoring" 821 # -- PrometheusRule selector 822 selector: {} 823 # prometheus: kube-prometheus 824 825 # -- PrometheusRule labels 826 additionalLabels: {} 827 # -- PrometheusRule annotations 828 annotations: {} 829 830 # -- PrometheusRule.Spec for the application controller 831 spec: [] 832 # - alert: ArgoAppMissing 833 # expr: | 834 # absent(argocd_app_info) == 1 835 # for: 15m 836 # labels: 837 # severity: critical 838 # annotations: 839 # summary: "[Argo CD] No reported applications" 840 # description: > 841 # Argo CD has not reported any applications data for the past 15 minutes which 842 # means that it must be down or not functioning properly. This needs to be 843 # resolved for this cloud to continue to maintain state. 844 # - alert: ArgoAppNotSynced 845 # expr: | 846 # argocd_app_info{sync_status!="Synced"} == 1 847 # for: 12h 848 # labels: 849 # severity: warning 850 # annotations: 851 # summary: "[{{`{{$labels.name}}`}}] Application not synchronized" 852 # description: > 853 # The application [{{`{{$labels.name}}`}} has not been synchronized for over 854 # 12 hours which means that the state of this cloud has drifted away from the 855 # state inside Git. 856 857 ## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource. 858 ## Defaults to off 859 clusterRoleRules: 860 # -- Enable custom rules for the application controller's ClusterRole resource 861 enabled: false 862 # -- List of custom rules for the application controller's ClusterRole resource 863 rules: [] 864 865 ## Dex 866 dex: 867 # -- Enable dex 868 enabled: true 869 # -- Dex name 870 name: dex-server 871 872 # -- Additional command line arguments to pass to the Dex server 873 extraArgs: [] 874 875 metrics: 876 # -- Deploy metrics service 877 enabled: false 878 service: 879 # -- Metrics service annotations 880 annotations: {} 881 # -- Metrics service labels 882 labels: {} 883 # -- Metrics service port name 884 portName: http-metrics 885 serviceMonitor: 886 # -- Enable a prometheus ServiceMonitor 887 enabled: false 888 # -- Prometheus ServiceMonitor interval 889 interval: 30s 890 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 891 relabelings: [] 892 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 893 metricRelabelings: [] 894 # -- Prometheus ServiceMonitor selector 895 selector: {} 896 # prometheus: kube-prometheus 897 898 # -- Prometheus ServiceMonitor scheme 899 scheme: "" 900 # -- Prometheus ServiceMonitor tlsConfig 901 tlsConfig: {} 902 # -- Prometheus ServiceMonitor namespace 903 namespace: "" # "monitoring" 904 # -- Prometheus ServiceMonitor labels 905 additionalLabels: {} 906 # -- Prometheus ServiceMonitor annotations 907 annotations: {} 908 909 ## Dex Pod Disruption Budget 910 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 911 pdb: 912 # -- Deploy a [PodDisruptionBudget] for the Dex server 913 enabled: false 914 # -- Labels to be added to Dex server pdb 915 labels: {} 916 # -- Annotations to be added to Dex server pdb 917 annotations: {} 918 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 919 # @default -- `""` (defaults to 0 if not specified) 920 minAvailable: "" 921 # -- Number of pods that are unavailble after eviction as number or percentage (eg.: 50%). 922 ## Has higher precedence over `dex.pdb.minAvailable` 923 maxUnavailable: "" 924 925 ## Dex image 926 image: 927 # -- Dex image repository 928 repository: ghcr.io/dexidp/dex 929 # -- Dex image tag 930 tag: v2.37.0 931 # -- Dex imagePullPolicy 932 # @default -- `""` (defaults to global.image.imagePullPolicy) 933 imagePullPolicy: "" 934 935 # -- Secrets with credentials to pull images from a private registry 936 # @default -- `[]` (defaults to global.imagePullSecrets) 937 imagePullSecrets: [] 938 939 # Argo CD init image that creates Dex config 940 initImage: 941 # -- Argo CD init image repository 942 # @default -- `""` (defaults to global.image.repository) 943 repository: "" 944 # -- Argo CD init image tag 945 # @default -- `""` (defaults to global.image.tag) 946 tag: "" 947 # -- Argo CD init image imagePullPolicy 948 # @default -- `""` (defaults to global.image.imagePullPolicy) 949 imagePullPolicy: "" 950 # -- Argo CD init image resources 951 # @default -- `{}` (defaults to dex.resources) 952 resources: {} 953 # requests: 954 # cpu: 5m 955 # memory: 96Mi 956 # limits: 957 # cpu: 10m 958 # memory: 144Mi 959 960 # -- Environment variables to pass to the Dex server 961 env: [] 962 963 # -- envFrom to pass to the Dex server 964 # @default -- `[]` (See [values.yaml]) 965 envFrom: [] 966 # - configMapRef: 967 # name: config-map-name 968 # - secretRef: 969 # name: secret-name 970 971 # -- Additional containers to be added to the dex pod 972 ## Note: Supports use of custom Helm templates 973 extraContainers: [] 974 975 # -- Init containers to add to the dex pod 976 ## Note: Supports use of custom Helm templates 977 initContainers: [] 978 979 # -- Additional volumeMounts to the dex main container 980 volumeMounts: [] 981 982 # -- Additional volumes to the dex pod 983 volumes: [] 984 985 # TLS certificate configuration via Secret 986 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#configuring-tls-to-argocd-dex-server 987 ## Note: Issuing certificates via cert-manager in not supported right now because it's not possible to restart Dex automatically without extra controllers. 988 certificateSecret: 989 # -- Create argocd-dex-server-tls secret 990 enabled: false 991 # -- Labels to be added to argocd-dex-server-tls secret 992 labels: {} 993 # -- Annotations to be added to argocd-dex-server-tls secret 994 annotations: {} 995 # -- Certificate authority. Required for self-signed certificates. 996 ca: '' 997 # -- Certificate private key 998 key: '' 999 # -- Certificate data. Must contain SANs of Dex service (ie: argocd-dex-server, argocd-dex-server.argo-cd.svc) 1000 crt: '' 1001 1002 # -- Annotations to be added to the Dex server Deployment 1003 deploymentAnnotations: {} 1004 1005 # -- Annotations to be added to the Dex server pods 1006 podAnnotations: {} 1007 1008 # -- Labels to be added to the Dex server pods 1009 podLabels: {} 1010 1011 # -- Resource limits and requests for dex 1012 resources: {} 1013 # limits: 1014 # cpu: 50m 1015 # memory: 64Mi 1016 # requests: 1017 # cpu: 10m 1018 # memory: 32Mi 1019 1020 # Dex container ports 1021 # NOTE: These ports are currently hardcoded and cannot be changed 1022 containerPorts: 1023 # -- HTTP container port 1024 http: 5556 1025 # -- gRPC container port 1026 grpc: 5557 1027 # -- Metrics container port 1028 metrics: 5558 1029 1030 # -- [DNS configuration] 1031 dnsConfig: {} 1032 # -- Alternative DNS policy for Dex server pods 1033 dnsPolicy: "ClusterFirst" 1034 1035 # -- Dex container-level security context 1036 # @default -- See [values.yaml] 1037 containerSecurityContext: 1038 runAsNonRoot: true 1039 readOnlyRootFilesystem: true 1040 allowPrivilegeEscalation: false 1041 seccompProfile: 1042 type: RuntimeDefault 1043 capabilities: 1044 drop: 1045 - ALL 1046 1047 ## Probes for Dex server 1048 ## Supported from Dex >= 2.28.0 1049 livenessProbe: 1050 # -- Enable Kubernetes liveness probe for Dex >= 2.28.0 1051 enabled: false 1052 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 1053 failureThreshold: 3 1054 # -- Number of seconds after the container has started before [probe] is initiated 1055 initialDelaySeconds: 10 1056 # -- How often (in seconds) to perform the [probe] 1057 periodSeconds: 10 1058 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 1059 successThreshold: 1 1060 # -- Number of seconds after which the [probe] times out 1061 timeoutSeconds: 1 1062 1063 readinessProbe: 1064 # -- Enable Kubernetes readiness probe for Dex >= 2.28.0 1065 enabled: false 1066 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 1067 failureThreshold: 3 1068 # -- Number of seconds after the container has started before [probe] is initiated 1069 initialDelaySeconds: 10 1070 # -- How often (in seconds) to perform the [probe] 1071 periodSeconds: 10 1072 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 1073 successThreshold: 1 1074 # -- Number of seconds after which the [probe] times out 1075 timeoutSeconds: 1 1076 1077 serviceAccount: 1078 # -- Create dex service account 1079 create: true 1080 # -- Dex service account name 1081 name: argocd-dex-server 1082 # -- Annotations applied to created service account 1083 annotations: {} 1084 # -- Automount API credentials for the Service Account 1085 automountServiceAccountToken: true 1086 1087 # -- Service port for HTTP access 1088 servicePortHttp: 5556 1089 # -- Service port name for HTTP access 1090 servicePortHttpName: http 1091 # -- Service port for gRPC access 1092 servicePortGrpc: 5557 1093 # -- Service port name for gRPC access 1094 servicePortGrpcName: grpc 1095 # -- Service port for metrics access 1096 servicePortMetrics: 5558 1097 1098 # -- Priority class for the dex pods 1099 # @default -- `""` (defaults to global.priorityClassName) 1100 priorityClassName: "" 1101 1102 # -- [Node selector] 1103 # @default -- `{}` (defaults to global.nodeSelector) 1104 nodeSelector: {} 1105 1106 # -- [Tolerations] for use with node taints 1107 # @default -- `[]` (defaults to global.tolerations) 1108 tolerations: [] 1109 1110 # -- Assign custom [affinity] rules to the deployment 1111 # @default -- `{}` (defaults to global.affinity preset) 1112 affinity: {} 1113 1114 # -- Assign custom [TopologySpreadConstraints] rules to dex 1115 # @default -- `[]` (defaults to global.topologySpreadConstraints) 1116 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 1117 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 1118 topologySpreadConstraints: [] 1119 # - maxSkew: 1 1120 # topologyKey: topology.kubernetes.io/zone 1121 # whenUnsatisfiable: DoNotSchedule 1122 1123 # -- Deployment strategy to be added to the Dex server Deployment 1124 deploymentStrategy: {} 1125 # type: RollingUpdate 1126 # rollingUpdate: 1127 # maxSurge: 25% 1128 # maxUnavailable: 25% 1129 1130 # -- Dex log format. Either `text` or `json` 1131 # @default -- `""` (defaults to global.logging.format) 1132 logFormat: "" 1133 # -- Dex log level. One of: `debug`, `info`, `warn`, `error` 1134 # @default -- `""` (defaults to global.logging.level) 1135 logLevel: "" 1136 1137 ## Redis 1138 redis: 1139 # -- Enable redis 1140 enabled: true 1141 # -- Redis name 1142 name: redis 1143 1144 ## Redis Pod Disruption Budget 1145 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 1146 pdb: 1147 # -- Deploy a [PodDisruptionBudget] for the Redis 1148 enabled: false 1149 # -- Labels to be added to Redis pdb 1150 labels: {} 1151 # -- Annotations to be added to Redis pdb 1152 annotations: {} 1153 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 1154 # @default -- `""` (defaults to 0 if not specified) 1155 minAvailable: "" 1156 # -- Number of pods that are unavailble after eviction as number or percentage (eg.: 50%). 1157 ## Has higher precedence over `redis.pdb.minAvailable` 1158 maxUnavailable: "" 1159 1160 ## Redis image 1161 image: 1162 # -- Redis repository 1163 repository: public.ecr.aws/docker/library/redis 1164 # -- Redis tag 1165 tag: 7.0.11-alpine 1166 # -- Redis image pull policy 1167 # @default -- `""` (defaults to global.image.imagePullPolicy) 1168 imagePullPolicy: "" 1169 1170 ## Prometheus redis-exporter sidecar 1171 exporter: 1172 # -- Enable Prometheus redis-exporter sidecar 1173 enabled: false 1174 # -- Environment variables to pass to the Redis exporter 1175 env: [] 1176 ## Prometheus redis-exporter image 1177 image: 1178 # -- Repository to use for the redis-exporter 1179 repository: public.ecr.aws/bitnami/redis-exporter 1180 # -- Tag to use for the redis-exporter 1181 tag: 1.53.0 1182 # -- Image pull policy for the redis-exporter 1183 # @default -- `""` (defaults to global.image.imagePullPolicy) 1184 imagePullPolicy: "" 1185 1186 # -- Redis exporter security context 1187 # @default -- See [values.yaml] 1188 containerSecurityContext: 1189 runAsNonRoot: true 1190 readOnlyRootFilesystem: true 1191 allowPrivilegeEscalation: false 1192 seccompProfile: 1193 type: RuntimeDefault 1194 capabilities: 1195 drop: 1196 - ALL 1197 1198 # -- Resource limits and requests for redis-exporter sidecar 1199 resources: {} 1200 # limits: 1201 # cpu: 50m 1202 # memory: 64Mi 1203 # requests: 1204 # cpu: 10m 1205 # memory: 32Mi 1206 1207 # -- Secrets with credentials to pull images from a private registry 1208 # @default -- `[]` (defaults to global.imagePullSecrets) 1209 imagePullSecrets: [] 1210 1211 # -- Additional command line arguments to pass to redis-server 1212 extraArgs: [] 1213 # - --bind 1214 # - "0.0.0.0" 1215 1216 # -- Environment variables to pass to the Redis server 1217 env: [] 1218 1219 # -- envFrom to pass to the Redis server 1220 # @default -- `[]` (See [values.yaml]) 1221 envFrom: [] 1222 # - configMapRef: 1223 # name: config-map-name 1224 # - secretRef: 1225 # name: secret-name 1226 1227 # -- Additional containers to be added to the redis pod 1228 ## Note: Supports use of custom Helm templates 1229 extraContainers: [] 1230 1231 # -- Init containers to add to the redis pod 1232 ## Note: Supports use of custom Helm templates 1233 initContainers: [] 1234 1235 # -- Additional volumeMounts to the redis container 1236 volumeMounts: [] 1237 1238 # -- Additional volumes to the redis pod 1239 volumes: [] 1240 1241 # -- Annotations to be added to the Redis server Deployment 1242 deploymentAnnotations: {} 1243 1244 # -- Annotations to be added to the Redis server pods 1245 podAnnotations: {} 1246 1247 # -- Labels to be added to the Redis server pods 1248 podLabels: {} 1249 1250 # -- Resource limits and requests for redis 1251 resources: {} 1252 # limits: 1253 # cpu: 200m 1254 # memory: 128Mi 1255 # requests: 1256 # cpu: 100m 1257 # memory: 64Mi 1258 1259 # -- Redis pod-level security context 1260 # @default -- See [values.yaml] 1261 securityContext: 1262 runAsNonRoot: true 1263 runAsUser: 999 1264 seccompProfile: 1265 type: RuntimeDefault 1266 1267 # Redis container ports 1268 containerPorts: 1269 # -- Redis container port 1270 redis: 6379 1271 # -- Metrics container port 1272 metrics: 9121 1273 1274 # -- [DNS configuration] 1275 dnsConfig: {} 1276 # -- Alternative DNS policy for Redis server pods 1277 dnsPolicy: "ClusterFirst" 1278 1279 # -- Redis container-level security context 1280 # @default -- See [values.yaml] 1281 containerSecurityContext: 1282 allowPrivilegeEscalation: false 1283 capabilities: 1284 drop: 1285 - ALL 1286 1287 # -- Redis service port 1288 servicePort: 6379 1289 1290 # -- Priority class for redis pods 1291 # @default -- `""` (defaults to global.priorityClassName) 1292 priorityClassName: "" 1293 1294 # -- [Node selector] 1295 # @default -- `{}` (defaults to global.nodeSelector) 1296 nodeSelector: {} 1297 1298 # -- [Tolerations] for use with node taints 1299 # @default -- `[]` (defaults to global.tolerations) 1300 tolerations: [] 1301 1302 # -- Assign custom [affinity] rules to the deployment 1303 # @default -- `{}` (defaults to global.affinity preset) 1304 affinity: {} 1305 1306 # -- Assign custom [TopologySpreadConstraints] rules to redis 1307 # @default -- `[]` (defaults to global.topologySpreadConstraints) 1308 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 1309 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 1310 topologySpreadConstraints: [] 1311 # - maxSkew: 1 1312 # topologyKey: topology.kubernetes.io/zone 1313 # whenUnsatisfiable: DoNotSchedule 1314 1315 serviceAccount: 1316 # -- Create a service account for the redis pod 1317 create: false 1318 # -- Service account name for redis pod 1319 name: "" 1320 # -- Annotations applied to created service account 1321 annotations: {} 1322 # -- Automount API credentials for the Service Account 1323 automountServiceAccountToken: false 1324 1325 service: 1326 # -- Redis service annotations 1327 annotations: {} 1328 # -- Additional redis service labels 1329 labels: {} 1330 1331 metrics: 1332 # -- Deploy metrics service 1333 enabled: false 1334 1335 # Redis metrics service configuration 1336 service: 1337 # -- Metrics service type 1338 type: ClusterIP 1339 # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) 1340 clusterIP: None 1341 # -- Metrics service annotations 1342 annotations: {} 1343 # -- Metrics service labels 1344 labels: {} 1345 # -- Metrics service port 1346 servicePort: 9121 1347 # -- Metrics service port name 1348 portName: http-metrics 1349 1350 serviceMonitor: 1351 # -- Enable a prometheus ServiceMonitor 1352 enabled: false 1353 # -- Interval at which metrics should be scraped 1354 interval: 30s 1355 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 1356 relabelings: [] 1357 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 1358 metricRelabelings: [] 1359 # -- Prometheus ServiceMonitor selector 1360 selector: {} 1361 # prometheus: kube-prometheus 1362 1363 # -- Prometheus ServiceMonitor scheme 1364 scheme: "" 1365 # -- Prometheus ServiceMonitor tlsConfig 1366 tlsConfig: {} 1367 # -- Prometheus ServiceMonitor namespace 1368 namespace: "" # "monitoring" 1369 # -- Prometheus ServiceMonitor labels 1370 additionalLabels: {} 1371 # -- Prometheus ServiceMonitor annotations 1372 annotations: {} 1373 1374 # This key configures Redis-HA subchart and when enabled (redis-ha.enabled=true) 1375 # the custom redis deployment is omitted 1376 # Check the redis-ha chart for more properties 1377 redis-ha: 1378 # -- Enables the Redis HA subchart and disables the custom Redis single node deployment 1379 enabled: false 1380 ## Prometheus redis-exporter sidecar 1381 exporter: 1382 # -- Enable Prometheus redis-exporter sidecar 1383 enabled: false 1384 # -- Repository to use for the redis-exporter 1385 image: public.ecr.aws/bitnami/redis-exporter 1386 # -- Tag to use for the redis-exporter 1387 tag: 1.53.0 1388 persistentVolume: 1389 # -- Configures persistence on Redis nodes 1390 enabled: false 1391 redis: 1392 # -- Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated 1393 masterGroupName: argocd 1394 # -- Any valid redis config options in this section will be applied to each server (see `redis-ha` chart) 1395 # @default -- See [values.yaml] 1396 config: 1397 # -- Will save the DB if both the given number of seconds and the given number of write operations against the DB occurred. `""` is disabled 1398 # @default -- `'""'` 1399 save: '""' 1400 haproxy: 1401 # -- Enabled HAProxy LoadBalancing/Proxy 1402 enabled: true 1403 metrics: 1404 # -- HAProxy enable prometheus metric scraping 1405 enabled: true 1406 image: 1407 # -- Redis tag 1408 tag: 7.0.11-alpine 1409 1410 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 1411 topologySpreadConstraints: 1412 # -- Enable Redis HA topology spread constraints 1413 enabled: false 1414 # -- Max skew of pods tolerated 1415 # @default -- `""` (defaults to `1`) 1416 maxSkew: "" 1417 # -- Topology key for spread 1418 # @default -- `""` (defaults to `topology.kubernetes.io/zone`) 1419 topologyKey: "" 1420 # -- Enforcement policy, hard or soft 1421 # @default -- `""` (defaults to `ScheduleAnyway`) 1422 whenUnsatisfiable: "" 1423 1424 # External Redis parameters 1425 externalRedis: 1426 # -- External Redis server host 1427 host: "" 1428 # -- External Redis username 1429 username: "" 1430 # -- External Redis password 1431 password: "" 1432 # -- External Redis server port 1433 port: 6379 1434 # -- The name of an existing secret with Redis credentials (must contain key `redis-password`). 1435 # When it's set, the `externalRedis.password` parameter is ignored 1436 existingSecret: "" 1437 # -- External Redis Secret annotations 1438 secretAnnotations: {} 1439 1440 ## Server 1441 server: 1442 # -- Argo CD server name 1443 name: server 1444 1445 # -- The number of server pods to run 1446 replicas: 1 1447 1448 ## Argo CD server Horizontal Pod Autoscaler 1449 autoscaling: 1450 # -- Enable Horizontal Pod Autoscaler ([HPA]) for the Argo CD server 1451 enabled: false 1452 # -- Minimum number of replicas for the Argo CD server [HPA] 1453 minReplicas: 1 1454 # -- Maximum number of replicas for the Argo CD server [HPA] 1455 maxReplicas: 5 1456 # -- Average CPU utilization percentage for the Argo CD server [HPA] 1457 targetCPUUtilizationPercentage: 50 1458 # -- Average memory utilization percentage for the Argo CD server [HPA] 1459 targetMemoryUtilizationPercentage: 50 1460 # -- Configures the scaling behavior of the target in both Up and Down directions. 1461 behavior: {} 1462 # scaleDown: 1463 # stabilizationWindowSeconds: 300 1464 # policies: 1465 # - type: Pods 1466 # value: 1 1467 # periodSeconds: 180 1468 # scaleUp: 1469 # stabilizationWindowSeconds: 300 1470 # policies: 1471 # - type: Pods 1472 # value: 2 1473 # periodSeconds: 60 1474 # -- Configures custom HPA metrics for the Argo CD server 1475 # Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ 1476 metrics: [] 1477 1478 ## Argo CD server Pod Disruption Budget 1479 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 1480 pdb: 1481 # -- Deploy a [PodDisruptionBudget] for the Argo CD server 1482 enabled: false 1483 # -- Labels to be added to Argo CD server pdb 1484 labels: {} 1485 # -- Annotations to be added to Argo CD server pdb 1486 annotations: {} 1487 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 1488 # @default -- `""` (defaults to 0 if not specified) 1489 minAvailable: "" 1490 # -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%). 1491 ## Has higher precedence over `server.pdb.minAvailable` 1492 maxUnavailable: "" 1493 1494 ## Argo CD server image 1495 image: 1496 # -- Repository to use for the Argo CD server 1497 # @default -- `""` (defaults to global.image.repository) 1498 repository: "" # defaults to global.image.repository 1499 # -- Tag to use for the Argo CD server 1500 # @default -- `""` (defaults to global.image.tag) 1501 tag: "" # defaults to global.image.tag 1502 # -- Image pull policy for the Argo CD server 1503 # @default -- `""` (defaults to global.image.imagePullPolicy) 1504 imagePullPolicy: "" # IfNotPresent 1505 1506 # -- Secrets with credentials to pull images from a private registry 1507 # @default -- `[]` (defaults to global.imagePullSecrets) 1508 imagePullSecrets: [] 1509 1510 # -- Additional command line arguments to pass to Argo CD server 1511 extraArgs: [] 1512 1513 # -- Environment variables to pass to Argo CD server 1514 env: [] 1515 1516 # -- envFrom to pass to Argo CD server 1517 # @default -- `[]` (See [values.yaml]) 1518 envFrom: [] 1519 # - configMapRef: 1520 # name: config-map-name 1521 # - secretRef: 1522 # name: secret-name 1523 1524 # -- Specify postStart and preStop lifecycle hooks for your argo-cd-server container 1525 lifecycle: {} 1526 1527 ## Argo UI extensions 1528 ## This function in tech preview stage, do expect instability or breaking changes in newer versions. 1529 ## Ref: https://github.com/argoproj-labs/argocd-extensions 1530 extensions: 1531 # -- Enable support for Argo UI extensions 1532 enabled: false 1533 1534 ## Argo UI extensions image 1535 image: 1536 # -- Repository to use for extensions image 1537 repository: "ghcr.io/argoproj-labs/argocd-extensions" 1538 # -- Tag to use for extensions image 1539 tag: "v0.2.1" 1540 # -- Image pull policy for extensions 1541 # @default -- `""` (defaults to global.image.imagePullPolicy) 1542 imagePullPolicy: "" 1543 1544 # -- Server UI extensions container-level security context 1545 # @default -- See [values.yaml] 1546 containerSecurityContext: 1547 runAsNonRoot: true 1548 readOnlyRootFilesystem: true 1549 allowPrivilegeEscalation: false 1550 seccompProfile: 1551 type: RuntimeDefault 1552 capabilities: 1553 drop: 1554 - ALL 1555 1556 # -- Resource limits and requests for the argocd-extensions container 1557 resources: {} 1558 # limits: 1559 # cpu: 50m 1560 # memory: 128Mi 1561 # requests: 1562 # cpu: 10m 1563 # memory: 64Mi 1564 1565 # -- Additional containers to be added to the server pod 1566 ## Note: Supports use of custom Helm templates 1567 extraContainers: [] 1568 # - name: my-sidecar 1569 # image: nginx:latest 1570 # - name: lemonldap-ng-controller 1571 # image: lemonldapng/lemonldap-ng-controller:0.2.0 1572 # args: 1573 # - /lemonldap-ng-controller 1574 # - --alsologtostderr 1575 # - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration 1576 # env: 1577 # - name: POD_NAME 1578 # valueFrom: 1579 # fieldRef: 1580 # fieldPath: metadata.name 1581 # - name: POD_NAMESPACE 1582 # valueFrom: 1583 # fieldRef: 1584 # fieldPath: metadata.namespace 1585 # volumeMounts: 1586 # - name: copy-portal-skins 1587 # mountPath: /srv/var/lib/lemonldap-ng/portal/skins 1588 1589 # -- Init containers to add to the server pod 1590 ## If your target Kubernetes cluster(s) require a custom credential (exec) plugin 1591 ## you could use this (and the same in the application controller pod) to provide such executable 1592 ## Ref: https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins 1593 initContainers: [] 1594 # - name: download-tools 1595 # image: alpine:3 1596 # command: [sh, -c] 1597 # args: 1598 # - wget -qO kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.0.25/kubelogin-linux-amd64.zip && 1599 # unzip kubelogin.zip && mv bin/linux_amd64/kubelogin /custom-tools/ 1600 # volumeMounts: 1601 # - mountPath: /custom-tools 1602 # name: custom-tools 1603 1604 # -- Additional volumeMounts to the server main container 1605 volumeMounts: [] 1606 # - mountPath: /usr/local/bin/kubelogin 1607 # name: custom-tools 1608 # subPath: kubelogin 1609 1610 # -- Additional volumes to the server pod 1611 volumes: [] 1612 # - name: custom-tools 1613 # emptyDir: {} 1614 1615 # -- Annotations to be added to server Deployment 1616 deploymentAnnotations: {} 1617 1618 # -- Annotations to be added to server pods 1619 podAnnotations: {} 1620 1621 # -- Labels to be added to server pods 1622 podLabels: {} 1623 1624 # -- Resource limits and requests for the Argo CD server 1625 resources: {} 1626 # limits: 1627 # cpu: 100m 1628 # memory: 128Mi 1629 # requests: 1630 # cpu: 50m 1631 # memory: 64Mi 1632 1633 # Server container ports 1634 containerPorts: 1635 # -- Server container port 1636 server: 8080 1637 # -- Metrics container port 1638 metrics: 8083 1639 1640 # -- Host Network for Server pods 1641 hostNetwork: false 1642 1643 # -- [DNS configuration] 1644 dnsConfig: {} 1645 # -- Alternative DNS policy for Server pods 1646 dnsPolicy: "ClusterFirst" 1647 1648 # -- Server container-level security context 1649 # @default -- See [values.yaml] 1650 containerSecurityContext: 1651 runAsNonRoot: true 1652 readOnlyRootFilesystem: true 1653 allowPrivilegeEscalation: false 1654 seccompProfile: 1655 type: RuntimeDefault 1656 capabilities: 1657 drop: 1658 - ALL 1659 1660 ## Readiness and liveness probes for default backend 1661 ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 1662 readinessProbe: 1663 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 1664 failureThreshold: 3 1665 # -- Number of seconds after the container has started before [probe] is initiated 1666 initialDelaySeconds: 10 1667 # -- How often (in seconds) to perform the [probe] 1668 periodSeconds: 10 1669 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 1670 successThreshold: 1 1671 # -- Number of seconds after which the [probe] times out 1672 timeoutSeconds: 1 1673 1674 livenessProbe: 1675 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 1676 failureThreshold: 3 1677 # -- Number of seconds after the container has started before [probe] is initiated 1678 initialDelaySeconds: 10 1679 # -- How often (in seconds) to perform the [probe] 1680 periodSeconds: 10 1681 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 1682 successThreshold: 1 1683 # -- Number of seconds after which the [probe] times out 1684 timeoutSeconds: 1 1685 1686 # -- Priority class for the Argo CD server pods 1687 # @default -- `""` (defaults to global.priorityClassName) 1688 priorityClassName: "" 1689 1690 # -- [Node selector] 1691 # @default -- `{}` (defaults to global.nodeSelector) 1692 nodeSelector: {} 1693 1694 # -- [Tolerations] for use with node taints 1695 # @default -- `[]` (defaults to global.tolerations) 1696 tolerations: [] 1697 1698 # -- Assign custom [affinity] rules to the deployment 1699 # @default -- `{}` (defaults to global.affinity preset) 1700 affinity: {} 1701 1702 # -- Assign custom [TopologySpreadConstraints] rules to the Argo CD server 1703 # @default -- `[]` (defaults to global.topologySpreadConstraints) 1704 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 1705 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 1706 topologySpreadConstraints: [] 1707 # - maxSkew: 1 1708 # topologyKey: topology.kubernetes.io/zone 1709 # whenUnsatisfiable: DoNotSchedule 1710 1711 # -- Deployment strategy to be added to the server Deployment 1712 deploymentStrategy: {} 1713 # type: RollingUpdate 1714 # rollingUpdate: 1715 # maxSurge: 25% 1716 # maxUnavailable: 25% 1717 1718 # TLS certificate configuration via cert-manager 1719 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-certificates-used-by-argocd-server 1720 certificate: 1721 # -- Deploy a Certificate resource (requires cert-manager) 1722 enabled: false 1723 # -- The name of the Secret that will be automatically created and managed by this Certificate resource 1724 secretName: argocd-server-tls 1725 # -- Certificate primary domain (commonName) 1726 domain: argocd.example.com 1727 # -- Certificate Subject Alternate Names (SANs) 1728 additionalHosts: [] 1729 # -- The requested 'duration' (i.e. lifetime) of the certificate. 1730 # @default -- `""` (defaults to 2160h = 90d if not specified) 1731 ## Ref: https://cert-manager.io/docs/usage/certificate/#renewal 1732 duration: "" 1733 # -- How long before the expiry a certificate should be renewed. 1734 # @default -- `""` (defaults to 360h = 15d if not specified) 1735 ## Ref: https://cert-manager.io/docs/usage/certificate/#renewal 1736 renewBefore: "" 1737 # Certificate issuer 1738 ## Ref: https://cert-manager.io/docs/concepts/issuer 1739 issuer: 1740 # -- Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io` 1741 group: "" 1742 # -- Certificate issuer kind. Either `Issuer` or `ClusterIssuer` 1743 kind: "" 1744 # -- Certificate issuer name. Eg. `letsencrypt` 1745 name: "" 1746 # Private key of the certificate 1747 privateKey: 1748 # -- Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always` 1749 rotationPolicy: Never 1750 # -- The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8` 1751 encoding: PKCS1 1752 # -- Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA` 1753 algorithm: RSA 1754 # -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. 1755 size: 2048 1756 # -- Annotations to be applied to the Server Certificate 1757 annotations: {} 1758 # -- Usages for the certificate 1759 ### Ref: https://cert-manager.io/docs/reference/api-docs/#cert-manager.io/v1.KeyUsage 1760 usages: [] 1761 1762 # TLS certificate configuration via Secret 1763 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-certificates-used-by-argocd-server 1764 certificateSecret: 1765 # -- Create argocd-server-tls secret 1766 enabled: false 1767 # -- Annotations to be added to argocd-server-tls secret 1768 annotations: {} 1769 # -- Labels to be added to argocd-server-tls secret 1770 labels: {} 1771 # -- Private Key of the certificate 1772 key: '' 1773 # -- Certificate data 1774 crt: '' 1775 1776 ## Server service configuration 1777 service: 1778 # -- Server service annotations 1779 annotations: {} 1780 # -- Server service labels 1781 labels: {} 1782 # -- Server service type 1783 type: ClusterIP 1784 # -- Server service http port for NodePort service type (only if `server.service.type` is set to "NodePort") 1785 nodePortHttp: 30080 1786 # -- Server service https port for NodePort service type (only if `server.service.type` is set to "NodePort") 1787 nodePortHttps: 30443 1788 # -- Server service http port 1789 servicePortHttp: 80 1790 # -- Server service https port 1791 servicePortHttps: 443 1792 # -- Server service http port name, can be used to route traffic via istio 1793 servicePortHttpName: http 1794 # -- Server service https port name, can be used to route traffic via istio 1795 servicePortHttpsName: https 1796 # -- Server service https port appProtocol. (should be upper case - i.e. HTTPS) 1797 # servicePortHttpsAppProtocol: HTTPS 1798 # -- LoadBalancer will get created with the IP specified in this field 1799 loadBalancerIP: "" 1800 # -- Source IP ranges to allow access to service from 1801 loadBalancerSourceRanges: [] 1802 # -- Server service external IPs 1803 externalIPs: [] 1804 # -- Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints 1805 externalTrafficPolicy: "" 1806 # -- Used to maintain session affinity. Supports `ClientIP` and `None` 1807 sessionAffinity: "" 1808 1809 ## Server metrics service configuration 1810 metrics: 1811 # -- Deploy metrics service 1812 enabled: false 1813 service: 1814 # -- Metrics service type 1815 type: ClusterIP 1816 # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) 1817 clusterIP: "" 1818 # -- Metrics service annotations 1819 annotations: {} 1820 # -- Metrics service labels 1821 labels: {} 1822 # -- Metrics service port 1823 servicePort: 8083 1824 # -- Metrics service port name 1825 portName: http-metrics 1826 serviceMonitor: 1827 # -- Enable a prometheus ServiceMonitor 1828 enabled: false 1829 # -- Prometheus ServiceMonitor interval 1830 interval: 30s 1831 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 1832 relabelings: [] 1833 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 1834 metricRelabelings: [] 1835 # -- Prometheus ServiceMonitor selector 1836 selector: {} 1837 # prometheus: kube-prometheus 1838 1839 # -- Prometheus ServiceMonitor scheme 1840 scheme: "" 1841 # -- Prometheus ServiceMonitor tlsConfig 1842 tlsConfig: {} 1843 # -- Prometheus ServiceMonitor namespace 1844 namespace: "" # monitoring 1845 # -- Prometheus ServiceMonitor labels 1846 additionalLabels: {} 1847 # -- Prometheus ServiceMonitor annotations 1848 annotations: {} 1849 1850 serviceAccount: 1851 # -- Create server service account 1852 create: true 1853 # -- Server service account name 1854 name: argocd-server 1855 # -- Annotations applied to created service account 1856 annotations: {} 1857 # -- Labels applied to created service account 1858 labels: {} 1859 # -- Automount API credentials for the Service Account 1860 automountServiceAccountToken: true 1861 1862 ingress: 1863 # -- Enable an ingress resource for the Argo CD server 1864 enabled: false 1865 # -- Additional ingress annotations 1866 annotations: {} 1867 # -- Additional ingress labels 1868 labels: {} 1869 # -- Defines which ingress controller will implement the resource 1870 ingressClassName: "" 1871 1872 # -- List of ingress hosts 1873 ## Argo Ingress. 1874 ## Hostnames must be provided if Ingress is enabled. 1875 ## Secrets must be manually created in the namespace 1876 hosts: [] 1877 # - argocd.example.com 1878 1879 # -- List of ingress paths 1880 paths: 1881 - / 1882 # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` 1883 pathType: Prefix 1884 # -- Additional ingress paths 1885 extraPaths: [] 1886 # - path: /* 1887 # pathType: Prefix 1888 # backend: 1889 # service: 1890 # name: ssl-redirect 1891 # port: 1892 # name: use-annotation 1893 1894 # -- Ingress TLS configuration 1895 tls: [] 1896 # - secretName: your-certificate-name 1897 # hosts: 1898 # - argocd.example.com 1899 1900 # -- Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` 1901 https: false 1902 1903 # dedicated ingress for gRPC as documented at 1904 # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/ 1905 ingressGrpc: 1906 # -- Enable an ingress resource for the Argo CD server for dedicated [gRPC-ingress] 1907 enabled: false 1908 # -- Setup up gRPC ingress to work with an AWS ALB 1909 isAWSALB: false 1910 # -- Additional ingress annotations for dedicated [gRPC-ingress] 1911 annotations: {} 1912 # -- Additional ingress labels for dedicated [gRPC-ingress] 1913 labels: {} 1914 # -- Defines which ingress controller will implement the resource [gRPC-ingress] 1915 ingressClassName: "" 1916 1917 awsALB: 1918 # -- Service type for the AWS ALB gRPC service 1919 ## Service Type if isAWSALB is set to true 1920 ## Can be of type NodePort or ClusterIP depending on which mode you are 1921 ## are running. Instance mode needs type NodePort, IP mode needs type 1922 ## ClusterIP 1923 ## Ref: https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/how-it-works/#ingress-traffic 1924 serviceType: NodePort 1925 # -- Backend protocol version for the AWS ALB gRPC service 1926 ## This tells AWS to send traffic from the ALB using HTTP2. Can use gRPC as well if you want to leverage gRPC specific features 1927 backendProtocolVersion: HTTP2 1928 1929 # -- List of ingress hosts for dedicated [gRPC-ingress] 1930 ## Argo Ingress. 1931 ## Hostnames must be provided if Ingress is enabled. 1932 ## Secrets must be manually created in the namespace 1933 ## 1934 hosts: [] 1935 # - argocd.example.com 1936 1937 # -- List of ingress paths for dedicated [gRPC-ingress] 1938 paths: 1939 - / 1940 # -- Ingress path type for dedicated [gRPC-ingress]. One of `Exact`, `Prefix` or `ImplementationSpecific` 1941 pathType: Prefix 1942 # -- Additional ingress paths for dedicated [gRPC-ingress] 1943 extraPaths: [] 1944 # - path: /* 1945 # pathType: Prefix 1946 # backend: 1947 # service: 1948 # name: ssl-redirect 1949 # port: 1950 # name: use-annotation 1951 1952 # -- Ingress TLS configuration for dedicated [gRPC-ingress] 1953 tls: [] 1954 # - secretName: your-certificate-name 1955 # hosts: 1956 # - argocd.example.com 1957 1958 # -- Uses `server.service.servicePortHttps` instead `server.service.servicePortHttp` 1959 https: false 1960 1961 # Create a OpenShift Route with SSL passthrough for UI and CLI 1962 # Consider setting 'hostname' e.g. https://argocd.apps-crc.testing/ using your Default Ingress Controller Domain 1963 # Find your domain with: kubectl describe --namespace=openshift-ingress-operator ingresscontroller/default | grep Domain: 1964 # If 'hostname' is an empty string "" OpenShift will create a hostname for you. 1965 route: 1966 # -- Enable an OpenShift Route for the Argo CD server 1967 enabled: false 1968 # -- Openshift Route annotations 1969 annotations: {} 1970 # -- Hostname of OpenShift Route 1971 hostname: "" 1972 # -- Termination type of Openshift Route 1973 termination_type: passthrough 1974 # -- Termination policy of Openshift Route 1975 termination_policy: None 1976 1977 GKEbackendConfig: 1978 # -- Enable BackendConfig custom resource for Google Kubernetes Engine 1979 enabled: false 1980 # -- [BackendConfigSpec] 1981 spec: {} 1982 # spec: 1983 # iap: 1984 # enabled: true 1985 # oauthclientCredentials: 1986 # secretName: argocd-secret 1987 1988 ## Create a Google Managed Certificate for use with the GKE Ingress Controller 1989 ## https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs 1990 GKEmanagedCertificate: 1991 # -- Enable ManagedCertificate custom resource for Google Kubernetes Engine. 1992 enabled: false 1993 # -- Domains for the Google Managed Certificate 1994 domains: 1995 - argocd.example.com 1996 1997 ## Create a Google FrontendConfig Custom Resource, for use with the GKE Ingress Controller 1998 ## https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#configuring_ingress_features_through_frontendconfig_parameters 1999 GKEfrontendConfig: 2000 # -- Enable FrontConfig custom resource for Google Kubernetes Engine 2001 enabled: false 2002 # -- [FrontendConfigSpec] 2003 spec: {} 2004 # spec: 2005 # redirectToHttps: 2006 # enabled: true 2007 # responseCodeName: RESPONSE_CODE 2008 2009 ## Repo Server 2010 repoServer: 2011 # -- Repo server name 2012 name: repo-server 2013 2014 # -- The number of repo server pods to run 2015 replicas: 1 2016 2017 ## Repo server Horizontal Pod Autoscaler 2018 autoscaling: 2019 # -- Enable Horizontal Pod Autoscaler ([HPA]) for the repo server 2020 enabled: false 2021 # -- Minimum number of replicas for the repo server [HPA] 2022 minReplicas: 1 2023 # -- Maximum number of replicas for the repo server [HPA] 2024 maxReplicas: 5 2025 # -- Average CPU utilization percentage for the repo server [HPA] 2026 targetCPUUtilizationPercentage: 50 2027 # -- Average memory utilization percentage for the repo server [HPA] 2028 targetMemoryUtilizationPercentage: 50 2029 # -- Configures the scaling behavior of the target in both Up and Down directions. 2030 behavior: {} 2031 # scaleDown: 2032 # stabilizationWindowSeconds: 300 2033 # policies: 2034 # - type: Pods 2035 # value: 1 2036 # periodSeconds: 180 2037 # scaleUp: 2038 # stabilizationWindowSeconds: 300 2039 # policies: 2040 # - type: Pods 2041 # value: 2 2042 # periodSeconds: 60 2043 # -- Configures custom HPA metrics for the Argo CD repo server 2044 # Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/ 2045 metrics: [] 2046 2047 ## Repo server Pod Disruption Budget 2048 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 2049 pdb: 2050 # -- Deploy a [PodDisruptionBudget] for the repo server 2051 enabled: false 2052 # -- Labels to be added to repo server pdb 2053 labels: {} 2054 # -- Annotations to be added to repo server pdb 2055 annotations: {} 2056 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 2057 # @default -- `""` (defaults to 0 if not specified) 2058 minAvailable: "" 2059 # -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%). 2060 ## Has higher precedence over `repoServer.pdb.minAvailable` 2061 maxUnavailable: "" 2062 2063 ## Repo server image 2064 image: 2065 # -- Repository to use for the repo server 2066 # @default -- `""` (defaults to global.image.repository) 2067 repository: "" 2068 # -- Tag to use for the repo server 2069 # @default -- `""` (defaults to global.image.tag) 2070 tag: "" 2071 # -- Image pull policy for the repo server 2072 # @default -- `""` (defaults to global.image.imagePullPolicy) 2073 imagePullPolicy: "" 2074 2075 # -- Secrets with credentials to pull images from a private registry 2076 # @default -- `[]` (defaults to global.imagePullSecrets) 2077 imagePullSecrets: [] 2078 2079 # -- Additional command line arguments to pass to repo server 2080 extraArgs: [] 2081 2082 # -- Environment variables to pass to repo server 2083 env: [] 2084 2085 # -- envFrom to pass to repo server 2086 # @default -- `[]` (See [values.yaml]) 2087 envFrom: [] 2088 # - configMapRef: 2089 # name: config-map-name 2090 # - secretRef: 2091 # name: secret-name 2092 2093 # -- Specify postStart and preStop lifecycle hooks for your argo-repo-server container 2094 lifecycle: {} 2095 2096 # -- Additional containers to be added to the repo server pod 2097 ## Ref: https://argo-cd.readthedocs.io/en/stable/user-guide/config-management-plugins/ 2098 ## Note: Supports use of custom Helm templates 2099 extraContainers: [] 2100 # - name: cmp-my-plugin 2101 # command: 2102 # - "/var/run/argocd/argocd-cmp-server" 2103 # image: busybox 2104 # securityContext: 2105 # runAsNonRoot: true 2106 # runAsUser: 999 2107 # volumeMounts: 2108 # - mountPath: /var/run/argocd 2109 # name: var-files 2110 # - mountPath: /home/argocd/cmp-server/plugins 2111 # name: plugins 2112 # # Remove this volumeMount if you've chosen to bake the config file into the sidecar image. 2113 # - mountPath: /home/argocd/cmp-server/config/plugin.yaml 2114 # subPath: my-plugin.yaml 2115 # name: argocd-cmp-cm 2116 # # Starting with v2.4, do NOT mount the same tmp volume as the repo-server container. The filesystem separation helps 2117 # # mitigate path traversal attacks. 2118 # - mountPath: /tmp 2119 # name: cmp-tmp 2120 # - name: cmp-my-plugin2 2121 # command: 2122 # - "/var/run/argocd/argocd-cmp-server" 2123 # image: busybox 2124 # securityContext: 2125 # runAsNonRoot: true 2126 # runAsUser: 999 2127 # volumeMounts: 2128 # - mountPath: /var/run/argocd 2129 # name: var-files 2130 # # Remove this volumeMount if you've chosen to bake the config file into the sidecar image. 2131 # - mountPath: /home/argocd/cmp-server/plugins 2132 # name: plugins 2133 # - mountPath: /home/argocd/cmp-server/config/plugin.yaml 2134 # subPath: my-plugin2.yaml 2135 # name: argocd-cmp-cm 2136 # # Starting with v2.4, do NOT mount the same tmp volume as the repo-server container. The filesystem separation helps 2137 # # mitigate path traversal attacks. 2138 # - mountPath: /tmp 2139 # name: cmp-tmp 2140 2141 # -- Init containers to add to the repo server pods 2142 initContainers: [] 2143 2144 # -- Additional volumeMounts to the repo server main container 2145 volumeMounts: [] 2146 2147 # -- Additional volumes to the repo server pod 2148 volumes: [] 2149 # - name: argocd-cmp-cm 2150 # configMap: 2151 # name: argocd-cmp-cm 2152 # - name: cmp-tmp 2153 # emptyDir: {} 2154 2155 # -- Annotations to be added to repo server Deployment 2156 deploymentAnnotations: {} 2157 2158 # -- Annotations to be added to repo server pods 2159 podAnnotations: {} 2160 2161 # -- Labels to be added to repo server pods 2162 podLabels: {} 2163 2164 # -- Resource limits and requests for the repo server pods 2165 resources: {} 2166 # limits: 2167 # cpu: 50m 2168 # memory: 128Mi 2169 # requests: 2170 # cpu: 10m 2171 # memory: 64Mi 2172 2173 # Repo server container ports 2174 containerPorts: 2175 # -- Repo server container port 2176 server: 8081 2177 # -- Metrics container port 2178 metrics: 8084 2179 2180 # -- Host Network for Repo server pods 2181 hostNetwork: false 2182 2183 # -- [DNS configuration] 2184 dnsConfig: {} 2185 # -- Alternative DNS policy for Repo server pods 2186 dnsPolicy: "ClusterFirst" 2187 2188 # -- Repo server container-level security context 2189 # @default -- See [values.yaml] 2190 containerSecurityContext: 2191 runAsNonRoot: true 2192 readOnlyRootFilesystem: true 2193 allowPrivilegeEscalation: false 2194 seccompProfile: 2195 type: RuntimeDefault 2196 capabilities: 2197 drop: 2198 - ALL 2199 2200 ## Readiness and liveness probes for default backend 2201 ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 2202 readinessProbe: 2203 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 2204 failureThreshold: 3 2205 # -- Number of seconds after the container has started before [probe] is initiated 2206 initialDelaySeconds: 10 2207 # -- How often (in seconds) to perform the [probe] 2208 periodSeconds: 10 2209 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 2210 successThreshold: 1 2211 # -- Number of seconds after which the [probe] times out 2212 timeoutSeconds: 1 2213 2214 livenessProbe: 2215 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 2216 failureThreshold: 3 2217 # -- Number of seconds after the container has started before [probe] is initiated 2218 initialDelaySeconds: 10 2219 # -- How often (in seconds) to perform the [probe] 2220 periodSeconds: 10 2221 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 2222 successThreshold: 1 2223 # -- Number of seconds after which the [probe] times out 2224 timeoutSeconds: 1 2225 2226 # -- [Node selector] 2227 # @default -- `{}` (defaults to global.nodeSelector) 2228 nodeSelector: {} 2229 2230 # -- [Tolerations] for use with node taints 2231 # @default -- `[]` (defaults to global.tolerations) 2232 tolerations: [] 2233 2234 # -- Assign custom [affinity] rules to the deployment 2235 # @default -- `{}` (defaults to global.affinity preset) 2236 affinity: {} 2237 2238 # -- Assign custom [TopologySpreadConstraints] rules to the repo server 2239 # @default -- `[]` (defaults to global.topologySpreadConstraints) 2240 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 2241 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 2242 topologySpreadConstraints: [] 2243 # - maxSkew: 1 2244 # topologyKey: topology.kubernetes.io/zone 2245 # whenUnsatisfiable: DoNotSchedule 2246 2247 # -- Deployment strategy to be added to the repo server Deployment 2248 deploymentStrategy: {} 2249 # type: RollingUpdate 2250 # rollingUpdate: 2251 # maxSurge: 25% 2252 # maxUnavailable: 25% 2253 2254 # -- Priority class for the repo server pods 2255 # @default -- `""` (defaults to global.priorityClassName) 2256 priorityClassName: "" 2257 2258 # TLS certificate configuration via Secret 2259 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#configuring-tls-to-argocd-repo-server 2260 ## Note: Issuing certificates via cert-manager in not supported right now because it's not possible to restart repo server automatically without extra controllers. 2261 certificateSecret: 2262 # -- Create argocd-repo-server-tls secret 2263 enabled: false 2264 # -- Annotations to be added to argocd-repo-server-tls secret 2265 annotations: {} 2266 # -- Labels to be added to argocd-repo-server-tls secret 2267 labels: {} 2268 # -- Certificate authority. Required for self-signed certificates. 2269 ca: '' 2270 # -- Certificate private key 2271 key: '' 2272 # -- Certificate data. Must contain SANs of Repo service (ie: argocd-repo-server, argocd-repo-server.argo-cd.svc) 2273 crt: '' 2274 2275 ## Repo server service configuration 2276 service: 2277 # -- Repo server service annotations 2278 annotations: {} 2279 # -- Repo server service labels 2280 labels: {} 2281 # -- Repo server service port 2282 port: 8081 2283 # -- Repo server service port name 2284 portName: https-repo-server 2285 2286 ## Repo server metrics service configuration 2287 metrics: 2288 # -- Deploy metrics service 2289 enabled: false 2290 service: 2291 # -- Metrics service type 2292 type: ClusterIP 2293 # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) 2294 clusterIP: "" 2295 # -- Metrics service annotations 2296 annotations: {} 2297 # -- Metrics service labels 2298 labels: {} 2299 # -- Metrics service port 2300 servicePort: 8084 2301 # -- Metrics service port name 2302 portName: http-metrics 2303 serviceMonitor: 2304 # -- Enable a prometheus ServiceMonitor 2305 enabled: false 2306 # -- Prometheus ServiceMonitor interval 2307 interval: 30s 2308 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 2309 relabelings: [] 2310 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 2311 metricRelabelings: [] 2312 # -- Prometheus ServiceMonitor selector 2313 selector: {} 2314 # prometheus: kube-prometheus 2315 2316 # -- Prometheus ServiceMonitor scheme 2317 scheme: "" 2318 # -- Prometheus ServiceMonitor tlsConfig 2319 tlsConfig: {} 2320 # -- Prometheus ServiceMonitor namespace 2321 namespace: "" # "monitoring" 2322 # -- Prometheus ServiceMonitor labels 2323 additionalLabels: {} 2324 # -- Prometheus ServiceMonitor annotations 2325 annotations: {} 2326 2327 ## Enable Custom Rules for the Repo server's Cluster Role resource 2328 ## Enable this and set the rules: to whatever custom rules you want for the Cluster Role resource. 2329 ## Defaults to off 2330 clusterRoleRules: 2331 # -- Enable custom rules for the Repo server's Cluster Role resource 2332 enabled: false 2333 # -- List of custom rules for the Repo server's Cluster Role resource 2334 rules: [] 2335 2336 ## Repo server service account 2337 ## If create is set to true, make sure to uncomment the name and update the rbac section below 2338 serviceAccount: 2339 # -- Create repo server service account 2340 create: true 2341 # -- Repo server service account name 2342 name: "" # "argocd-repo-server" 2343 # -- Annotations applied to created service account 2344 annotations: {} 2345 # -- Labels applied to created service account 2346 labels: {} 2347 # -- Automount API credentials for the Service Account 2348 automountServiceAccountToken: true 2349 2350 # -- Repo server rbac rules 2351 rbac: [] 2352 # - apiGroups: 2353 # - argoproj.io 2354 # resources: 2355 # - applications 2356 # verbs: 2357 # - get 2358 # - list 2359 # - watch 2360 2361 ## ApplicationSet controller 2362 applicationSet: 2363 # -- Enable ApplicationSet controller 2364 enabled: true 2365 2366 # -- ApplicationSet controller name string 2367 name: applicationset-controller 2368 2369 # -- The number of ApplicationSet controller pods to run 2370 replicas: 1 2371 2372 ## ApplicationSet controller Pod Disruption Budget 2373 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 2374 pdb: 2375 # -- Deploy a [PodDisruptionBudget] for the ApplicationSet controller 2376 enabled: false 2377 # -- Labels to be added to ApplicationSet controller pdb 2378 labels: {} 2379 # -- Annotations to be added to ApplicationSet controller pdb 2380 annotations: {} 2381 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 2382 # @default -- `""` (defaults to 0 if not specified) 2383 minAvailable: "" 2384 # -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%). 2385 ## Has higher precedence over `applicationSet.pdb.minAvailable` 2386 maxUnavailable: "" 2387 2388 ## ApplicationSet controller image 2389 image: 2390 # -- Repository to use for the ApplicationSet controller 2391 # @default -- `""` (defaults to global.image.repository) 2392 repository: "" 2393 # -- Tag to use for the ApplicationSet controller 2394 # @default -- `""` (defaults to global.image.tag) 2395 tag: "" 2396 # -- Image pull policy for the ApplicationSet controller 2397 # @default -- `""` (defaults to global.image.imagePullPolicy) 2398 imagePullPolicy: "" 2399 2400 # -- If defined, uses a Secret to pull an image from a private Docker registry or repository. 2401 # @default -- `[]` (defaults to global.imagePullSecrets) 2402 imagePullSecrets: [] 2403 2404 # -- DEPRECATED - ApplicationSet controller command line flags 2405 args: {} 2406 # DEPRECATED - Use configs.params.applicationsetcontroller.policy to override 2407 # -- How application is synced between the generator and the cluster 2408 # policy: sync 2409 # DEPRECATED - Use configs.params.applicationsetcontroller.dryrun to override 2410 # -- Enable dry run mode 2411 # dryRun: false 2412 2413 # -- List of extra cli args to add 2414 extraArgs: [] 2415 2416 # -- Environment variables to pass to the ApplicationSet controller 2417 extraEnv: [] 2418 # - name: "MY_VAR" 2419 # value: "value" 2420 2421 # -- envFrom to pass to the ApplicationSet controller 2422 # @default -- `[]` (See [values.yaml]) 2423 extraEnvFrom: [] 2424 # - configMapRef: 2425 # name: config-map-name 2426 # - secretRef: 2427 # name: secret-name 2428 2429 # -- Additional containers to be added to the ApplicationSet controller pod 2430 ## Note: Supports use of custom Helm templates 2431 extraContainers: [] 2432 2433 # -- Init containers to add to the ApplicationSet controller pod 2434 ## Note: Supports use of custom Helm templates 2435 initContainers: [] 2436 2437 # -- List of extra mounts to add (normally used with extraVolumes) 2438 extraVolumeMounts: [] 2439 2440 # -- List of extra volumes to add 2441 extraVolumes: [] 2442 2443 ## Metrics service configuration 2444 metrics: 2445 # -- Deploy metrics service 2446 enabled: false 2447 service: 2448 # -- Metrics service type 2449 type: ClusterIP 2450 # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) 2451 clusterIP: "" 2452 # -- Metrics service annotations 2453 annotations: {} 2454 # -- Metrics service labels 2455 labels: {} 2456 # -- Metrics service port 2457 servicePort: 8080 2458 # -- Metrics service port name 2459 portName: http-metrics 2460 serviceMonitor: 2461 # -- Enable a prometheus ServiceMonitor 2462 enabled: false 2463 # -- Prometheus ServiceMonitor interval 2464 interval: 30s 2465 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 2466 relabelings: [] 2467 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 2468 metricRelabelings: [] 2469 # -- Prometheus ServiceMonitor selector 2470 selector: {} 2471 # prometheus: kube-prometheus 2472 2473 # -- Prometheus ServiceMonitor scheme 2474 scheme: "" 2475 # -- Prometheus ServiceMonitor tlsConfig 2476 tlsConfig: {} 2477 # -- Prometheus ServiceMonitor namespace 2478 namespace: "" # monitoring 2479 # -- Prometheus ServiceMonitor labels 2480 additionalLabels: {} 2481 # -- Prometheus ServiceMonitor annotations 2482 annotations: {} 2483 2484 ## ApplicationSet service configuration 2485 service: 2486 # -- ApplicationSet service annotations 2487 annotations: {} 2488 # -- ApplicationSet service labels 2489 labels: {} 2490 # -- ApplicationSet service type 2491 type: ClusterIP 2492 # -- ApplicationSet service port 2493 port: 7000 2494 # -- ApplicationSet service port name 2495 portName: webhook 2496 2497 serviceAccount: 2498 # -- Create ApplicationSet controller service account 2499 create: true 2500 # -- ApplicationSet controller service account name 2501 name: argocd-applicationset-controller 2502 # -- Annotations applied to created service account 2503 annotations: {} 2504 # -- Labels applied to created service account 2505 labels: {} 2506 # -- Automount API credentials for the Service Account 2507 automountServiceAccountToken: true 2508 2509 # -- Annotations to be added to ApplicationSet controller Deployment 2510 deploymentAnnotations: {} 2511 2512 # -- Annotations for the ApplicationSet controller pods 2513 podAnnotations: {} 2514 2515 # -- Labels for the ApplicationSet controller pods 2516 podLabels: {} 2517 2518 # -- Resource limits and requests for the ApplicationSet controller pods. 2519 resources: {} 2520 # limits: 2521 # cpu: 100m 2522 # memory: 128Mi 2523 # requests: 2524 # cpu: 100m 2525 # memory: 128Mi 2526 2527 # ApplicationSet controller container ports 2528 containerPorts: 2529 # -- Metrics container port 2530 metrics: 8080 2531 # -- Probe container port 2532 probe: 8081 2533 # -- Webhook container port 2534 webhook: 7000 2535 2536 # -- [DNS configuration] 2537 dnsConfig: {} 2538 # -- Alternative DNS policy for ApplicationSet controller pods 2539 dnsPolicy: "ClusterFirst" 2540 2541 # -- ApplicationSet controller container-level security context 2542 # @default -- See [values.yaml] 2543 containerSecurityContext: 2544 runAsNonRoot: true 2545 readOnlyRootFilesystem: true 2546 allowPrivilegeEscalation: false 2547 seccompProfile: 2548 type: RuntimeDefault 2549 capabilities: 2550 drop: 2551 - ALL 2552 2553 ## Probes for ApplicationSet controller (optional) 2554 ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/ 2555 readinessProbe: 2556 # -- Enable Kubernetes liveness probe for ApplicationSet controller 2557 enabled: false 2558 # -- Number of seconds after the container has started before [probe] is initiated 2559 initialDelaySeconds: 10 2560 # -- How often (in seconds) to perform the [probe] 2561 periodSeconds: 10 2562 # -- Number of seconds after which the [probe] times out 2563 timeoutSeconds: 1 2564 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 2565 successThreshold: 1 2566 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 2567 failureThreshold: 3 2568 2569 livenessProbe: 2570 # -- Enable Kubernetes liveness probe for ApplicationSet controller 2571 enabled: false 2572 # -- Number of seconds after the container has started before [probe] is initiated 2573 initialDelaySeconds: 10 2574 # -- How often (in seconds) to perform the [probe] 2575 periodSeconds: 10 2576 # -- Number of seconds after which the [probe] times out 2577 timeoutSeconds: 1 2578 # -- Minimum consecutive successes for the [probe] to be considered successful after having failed 2579 successThreshold: 1 2580 # -- Minimum consecutive failures for the [probe] to be considered failed after having succeeded 2581 failureThreshold: 3 2582 2583 # -- [Node selector] 2584 # @default -- `{}` (defaults to global.nodeSelector) 2585 nodeSelector: {} 2586 2587 # -- [Tolerations] for use with node taints 2588 # @default -- `[]` (defaults to global.tolerations) 2589 tolerations: [] 2590 2591 # -- Assign custom [affinity] rules 2592 # @default -- `{}` (defaults to global.affinity preset) 2593 affinity: {} 2594 2595 # -- Assign custom [TopologySpreadConstraints] rules to the ApplicationSet controller 2596 # @default -- `[]` (defaults to global.topologySpreadConstraints) 2597 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 2598 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 2599 topologySpreadConstraints: [] 2600 # - maxSkew: 1 2601 # topologyKey: topology.kubernetes.io/zone 2602 # whenUnsatisfiable: DoNotSchedule 2603 2604 # -- Deployment strategy to be added to the ApplicationSet controller Deployment 2605 deploymentStrategy: {} 2606 # type: RollingUpdate 2607 # rollingUpdate: 2608 # maxSurge: 25% 2609 # maxUnavailable: 25% 2610 2611 # -- Priority class for the ApplicationSet controller pods 2612 # @default -- `""` (defaults to global.priorityClassName) 2613 priorityClassName: "" 2614 2615 ## Webhook for the Git Generator 2616 ## Ref: https://argocd-applicationset.readthedocs.io/en/master/Generators-Git/#webhook-configuration) 2617 webhook: 2618 ingress: 2619 # -- Enable an ingress resource for Webhooks 2620 enabled: false 2621 # -- Additional ingress annotations 2622 annotations: {} 2623 # -- Additional ingress labels 2624 labels: {} 2625 # -- Defines which ingress ApplicationSet controller will implement the resource 2626 ingressClassName: "" 2627 2628 # -- List of ingress hosts 2629 ## Hostnames must be provided if Ingress is enabled. 2630 ## Secrets must be manually created in the namespace 2631 hosts: [] 2632 # - argocd-applicationset.example.com 2633 2634 # -- List of ingress paths 2635 paths: 2636 - /api/webhook 2637 # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific` 2638 pathType: Prefix 2639 # -- Additional ingress paths 2640 extraPaths: [] 2641 # - path: /* 2642 # backend: 2643 # serviceName: ssl-redirect 2644 # servicePort: use-annotation 2645 ## for Kubernetes >=1.19 (when "networking.k8s.io/v1" is used) 2646 # - path: /* 2647 # pathType: Prefix 2648 # backend: 2649 # service: 2650 # name: ssl-redirect 2651 # port: 2652 # name: use-annotation 2653 2654 # -- Ingress TLS configuration 2655 tls: [] 2656 # - secretName: argocd-applicationset-tls 2657 # hosts: 2658 # - argocd-applicationset.example.com 2659 2660 # TLS certificate configuration via cert-manager 2661 ## Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/tls/#tls-configuration 2662 certificate: 2663 # -- Deploy a Certificate resource (requires cert-manager) 2664 enabled: false 2665 # -- The name of the Secret that will be automatically created and managed by this Certificate resource 2666 secretName: argocd-application-controller-tls 2667 # -- Certificate primary domain (commonName) 2668 domain: argocd.example.com 2669 # -- Certificate Subject Alternate Names (SANs) 2670 additionalHosts: [] 2671 # -- The requested 'duration' (i.e. lifetime) of the certificate. 2672 # @default -- `""` (defaults to 2160h = 90d if not specified) 2673 ## Ref: https://cert-manager.io/docs/usage/certificate/#renewal 2674 duration: "" 2675 # -- How long before the expiry a certificate should be renewed. 2676 # @default -- `""` (defaults to 360h = 15d if not specified) 2677 ## Ref: https://cert-manager.io/docs/usage/certificate/#renewal 2678 renewBefore: "" 2679 # Certificate issuer 2680 ## Ref: https://cert-manager.io/docs/concepts/issuer 2681 issuer: 2682 # -- Certificate issuer group. Set if using an external issuer. Eg. `cert-manager.io` 2683 group: "" 2684 # -- Certificate issuer kind. Either `Issuer` or `ClusterIssuer` 2685 kind: "" 2686 # -- Certificate issuer name. Eg. `letsencrypt` 2687 name: "" 2688 # Private key of the certificate 2689 privateKey: 2690 # -- Rotation policy of private key when certificate is re-issued. Either: `Never` or `Always` 2691 rotationPolicy: Never 2692 # -- The private key cryptography standards (PKCS) encoding for private key. Either: `PCKS1` or `PKCS8` 2693 encoding: PKCS1 2694 # -- Algorithm used to generate certificate private key. One of: `RSA`, `Ed25519` or `ECDSA` 2695 algorithm: RSA 2696 # -- Key bit size of the private key. If algorithm is set to `Ed25519`, size is ignored. 2697 size: 2048 2698 # -- Annotations to be applied to the ApplicationSet Certificate 2699 annotations: {} 2700 2701 ## Notifications controller 2702 notifications: 2703 # -- Enable notifications controller 2704 enabled: true 2705 2706 # -- Notifications controller name string 2707 name: notifications-controller 2708 2709 # -- Argo CD dashboard url; used in place of {{.context.argocdUrl}} in templates 2710 argocdUrl: 2711 2712 ## Notifications controller Pod Disruption Budget 2713 ## Ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/ 2714 pdb: 2715 # -- Deploy a [PodDisruptionBudget] for the notifications controller 2716 enabled: false 2717 # -- Labels to be added to notifications controller pdb 2718 labels: {} 2719 # -- Annotations to be added to notifications controller pdb 2720 annotations: {} 2721 # -- Number of pods that are available after eviction as number or percentage (eg.: 50%) 2722 # @default -- `""` (defaults to 0 if not specified) 2723 minAvailable: "" 2724 # -- Number of pods that are unavailable after eviction as number or percentage (eg.: 50%). 2725 ## Has higher precedence over `notifications.pdb.minAvailable` 2726 maxUnavailable: "" 2727 2728 ## Notifications controller image 2729 image: 2730 # -- Repository to use for the notifications controller 2731 # @default -- `""` (defaults to global.image.repository) 2732 repository: "" 2733 # -- Tag to use for the notifications controller 2734 # @default -- `""` (defaults to global.image.tag) 2735 tag: "" 2736 # -- Image pull policy for the notifications controller 2737 # @default -- `""` (defaults to global.image.imagePullPolicy) 2738 imagePullPolicy: "" 2739 2740 # -- Secrets with credentials to pull images from a private registry 2741 # @default -- `[]` (defaults to global.imagePullSecrets) 2742 imagePullSecrets: [] 2743 2744 # -- Notifications controller log format. Either `text` or `json` 2745 # @default -- `""` (defaults to global.logging.format) 2746 logFormat: "" 2747 # -- Notifications controller log level. One of: `debug`, `info`, `warn`, `error` 2748 # @default -- `""` (defaults to global.logging.level) 2749 logLevel: "" 2750 2751 # -- Extra arguments to provide to the notifications controller 2752 extraArgs: [] 2753 2754 # -- Additional container environment variables 2755 extraEnv: [] 2756 2757 # -- envFrom to pass to the notifications controller 2758 # @default -- `[]` (See [values.yaml]) 2759 extraEnvFrom: [] 2760 # - configMapRef: 2761 # name: config-map-name 2762 # - secretRef: 2763 # name: secret-name 2764 2765 # -- Additional containers to be added to the notifications controller pod 2766 ## Note: Supports use of custom Helm templates 2767 extraContainers: [] 2768 2769 # -- Init containers to add to the notifications controller pod 2770 ## Note: Supports use of custom Helm templates 2771 initContainers: [] 2772 2773 # -- List of extra mounts to add (normally used with extraVolumes) 2774 extraVolumeMounts: [] 2775 2776 # -- List of extra volumes to add 2777 extraVolumes: [] 2778 2779 # -- Define user-defined context 2780 ## For more information: https://argocd-notifications.readthedocs.io/en/stable/templates/#defining-user-defined-context 2781 context: {} 2782 # region: east 2783 # environmentName: staging 2784 2785 secret: 2786 # -- Whether helm chart creates notifications controller secret 2787 create: true 2788 2789 # -- key:value pairs of annotations to be added to the secret 2790 annotations: {} 2791 2792 # -- key:value pairs of labels to be added to the secret 2793 labels: {} 2794 2795 # -- Generic key:value pairs to be inserted into the secret 2796 ## Can be used for templates, notification services etc. Some examples given below. 2797 ## For more information: https://argocd-notifications.readthedocs.io/en/stable/services/overview/ 2798 items: {} 2799 # slack-token: 2800 # # For more information: https://argocd-notifications.readthedocs.io/en/stable/services/slack/ 2801 2802 # grafana-apiKey: 2803 # # For more information: https://argocd-notifications.readthedocs.io/en/stable/services/grafana/ 2804 2805 # webhooks-github-token: 2806 2807 # email-username: 2808 # email-password: 2809 # For more information: https://argocd-notifications.readthedocs.io/en/stable/services/email/ 2810 2811 metrics: 2812 # -- Enables prometheus metrics server 2813 enabled: false 2814 # -- Metrics port 2815 port: 9001 2816 service: 2817 # -- Metrics service type 2818 type: ClusterIP 2819 # -- Metrics service clusterIP. `None` makes a "headless service" (no virtual IP) 2820 clusterIP: "" 2821 # -- Metrics service annotations 2822 annotations: {} 2823 # -- Metrics service labels 2824 labels: {} 2825 # -- Metrics service port name 2826 portName: http-metrics 2827 serviceMonitor: 2828 # -- Enable a prometheus ServiceMonitor 2829 enabled: false 2830 # -- Prometheus ServiceMonitor selector 2831 selector: {} 2832 # prometheus: kube-prometheus 2833 # -- Prometheus ServiceMonitor labels 2834 additionalLabels: {} 2835 # -- Prometheus ServiceMonitor annotations 2836 annotations: {} 2837 # namespace: monitoring 2838 # interval: 30s 2839 # scrapeTimeout: 10s 2840 # -- Prometheus ServiceMonitor scheme 2841 scheme: "" 2842 # -- Prometheus ServiceMonitor tlsConfig 2843 tlsConfig: {} 2844 # -- Prometheus [RelabelConfigs] to apply to samples before scraping 2845 relabelings: [] 2846 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion 2847 metricRelabelings: [] 2848 2849 # -- Configures notification services such as slack, email or custom webhook 2850 # @default -- See [values.yaml] 2851 ## For more information: https://argocd-notifications.readthedocs.io/en/stable/services/overview/ 2852 notifiers: {} 2853 # service.slack: | 2854 # token: $slack-token 2855 2856 # -- Annotations to be applied to the notifications controller Deployment 2857 deploymentAnnotations: {} 2858 2859 # -- Annotations to be applied to the notifications controller Pods 2860 podAnnotations: {} 2861 2862 # -- Labels to be applied to the notifications controller Pods 2863 podLabels: {} 2864 2865 # -- Resource limits and requests for the notifications controller 2866 resources: {} 2867 # limits: 2868 # cpu: 100m 2869 # memory: 128Mi 2870 # requests: 2871 # cpu: 100m 2872 # memory: 128Mi 2873 2874 # Notification controller container ports 2875 containerPorts: 2876 # -- Metrics container port 2877 metrics: 9001 2878 2879 # -- [DNS configuration] 2880 dnsConfig: {} 2881 # -- Alternative DNS policy for notifications controller Pods 2882 dnsPolicy: "ClusterFirst" 2883 2884 # -- Notification controller container-level security Context 2885 # @default -- See [values.yaml] 2886 containerSecurityContext: 2887 runAsNonRoot: true 2888 readOnlyRootFilesystem: true 2889 allowPrivilegeEscalation: false 2890 seccompProfile: 2891 type: RuntimeDefault 2892 capabilities: 2893 drop: 2894 - ALL 2895 2896 # -- [Node selector] 2897 # @default -- `{}` (defaults to global.nodeSelector) 2898 nodeSelector: {} 2899 2900 # -- [Tolerations] for use with node taints 2901 # @default -- `[]` (defaults to global.tolerations) 2902 tolerations: [] 2903 2904 # -- Assign custom [affinity] rules 2905 # @default -- `{}` (defaults to global.affinity preset) 2906 affinity: {} 2907 2908 # -- Assign custom [TopologySpreadConstraints] rules to the application controller 2909 # @default -- `[]` (defaults to global.topologySpreadConstraints) 2910 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ 2911 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment 2912 topologySpreadConstraints: [] 2913 # - maxSkew: 1 2914 # topologyKey: topology.kubernetes.io/zone 2915 # whenUnsatisfiable: DoNotSchedule 2916 2917 # -- Deployment strategy to be added to the notifications controller Deployment 2918 deploymentStrategy: 2919 type: Recreate 2920 2921 # -- Priority class for the notifications controller pods 2922 # @default -- `""` (defaults to global.priorityClassName) 2923 priorityClassName: "" 2924 2925 serviceAccount: 2926 # -- Create notifications controller service account 2927 create: true 2928 # -- Notification controller service account name 2929 name: argocd-notifications-controller 2930 # -- Annotations applied to created service account 2931 annotations: {} 2932 # -- Labels applied to created service account 2933 labels: {} 2934 # -- Automount API credentials for the Service Account 2935 automountServiceAccountToken: true 2936 2937 cm: 2938 # -- Whether helm chart creates notifications controller config map 2939 create: true 2940 2941 # -- Contains centrally managed global application subscriptions 2942 ## For more information: https://argocd-notifications.readthedocs.io/en/stable/subscriptions/ 2943 subscriptions: [] 2944 # # subscription for on-sync-status-unknown trigger notifications 2945 # - recipients: 2946 # - slack:test2 2947 # - email:test@gmail.com 2948 # triggers: 2949 # - on-sync-status-unknown 2950 # # subscription restricted to applications with matching labels only 2951 # - recipients: 2952 # - slack:test3 2953 # selector: test=true 2954 # triggers: 2955 # - on-sync-status-unknown 2956 2957 # -- The notification template is used to generate the notification content 2958 ## For more information: https://argocd-notifications.readthedocs.io/en/stable/templates/ 2959 templates: {} 2960 # template.app-deployed: | 2961 # email: 2962 # subject: New version of an application {{.app.metadata.name}} is up and running. 2963 # message: | 2964 # {{if eq .serviceType "slack"}}:white_check_mark:{{end}} Application {{.app.metadata.name}} is now running new version of deployments manifests. 2965 # slack: 2966 # attachments: | 2967 # [{ 2968 # "title": "{{ .app.metadata.name}}", 2969 # "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", 2970 # "color": "#18be52", 2971 # "fields": [ 2972 # { 2973 # "title": "Sync Status", 2974 # "value": "{{.app.status.sync.status}}", 2975 # "short": true 2976 # }, 2977 # { 2978 # "title": "Repository", 2979 # "value": "{{.app.spec.source.repoURL}}", 2980 # "short": true 2981 # }, 2982 # { 2983 # "title": "Revision", 2984 # "value": "{{.app.status.sync.revision}}", 2985 # "short": true 2986 # } 2987 # {{range $index, $c := .app.status.conditions}} 2988 # {{if not $index}},{{end}} 2989 # {{if $index}},{{end}} 2990 # { 2991 # "title": "{{$c.type}}", 2992 # "value": "{{$c.message}}", 2993 # "short": true 2994 # } 2995 # {{end}} 2996 # ] 2997 # }] 2998 # template.app-health-degraded: | 2999 # email: 3000 # subject: Application {{.app.metadata.name}} has degraded. 3001 # message: | 3002 # {{if eq .serviceType "slack"}}:exclamation:{{end}} Application {{.app.metadata.name}} has degraded. 3003 # Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}. 3004 # slack: 3005 # attachments: |- 3006 # [{ 3007 # "title": "{{ .app.metadata.name}}", 3008 # "title_link": "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", 3009 # "color": "#f4c030", 3010 # "fields": [ 3011 # { 3012 # "title": "Sync Status", 3013 # "value": "{{.app.status.sync.status}}", 3014 # "short": true 3015 # }, 3016 # { 3017 # "title": "Repository", 3018 # "value": "{{.app.spec.source.repoURL}}", 3019 # "short": true 3020 # } 3021 # {{range $index, $c := .app.status.conditions}} 3022 # {{if not $index}},{{end}} 3023 # {{if $index}},{{end}} 3024 # { 3025 # "title": "{{$c.type}}", 3026 # "value": "{{$c.message}}", 3027 # "short": true 3028 # } 3029 # {{end}} 3030 # ] 3031 # }] 3032 # template.app-sync-failed: | 3033 # email: 3034 # subject: Failed to sync application {{.app.metadata.name}}. 3035 # message: | 3036 # {{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}} 3037 # Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true . 3038 # slack: 3039 # attachments: |- 3040 # [{ 3041 # "title": "{{ .app.metadata.name}}", 3042 # "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", 3043 # "color": "#E96D76", 3044 # "fields": [ 3045 # { 3046 # "title": "Sync Status", 3047 # "value": "{{.app.status.sync.status}}", 3048 # "short": true 3049 # }, 3050 # { 3051 # "title": "Repository", 3052 # "value": "{{.app.spec.source.repoURL}}", 3053 # "short": true 3054 # } 3055 # {{range $index, $c := .app.status.conditions}} 3056 # {{if not $index}},{{end}} 3057 # {{if $index}},{{end}} 3058 # { 3059 # "title": "{{$c.type}}", 3060 # "value": "{{$c.message}}", 3061 # "short": true 3062 # } 3063 # {{end}} 3064 # ] 3065 # }] 3066 # template.app-sync-running: | 3067 # email: 3068 # subject: Start syncing application {{.app.metadata.name}}. 3069 # message: | 3070 # The sync operation of application {{.app.metadata.name}} has started at {{.app.status.operationState.startedAt}}. 3071 # Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true . 3072 # slack: 3073 # attachments: |- 3074 # [{ 3075 # "title": "{{ .app.metadata.name}}", 3076 # "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", 3077 # "color": "#0DADEA", 3078 # "fields": [ 3079 # { 3080 # "title": "Sync Status", 3081 # "value": "{{.app.status.sync.status}}", 3082 # "short": true 3083 # }, 3084 # { 3085 # "title": "Repository", 3086 # "value": "{{.app.spec.source.repoURL}}", 3087 # "short": true 3088 # } 3089 # {{range $index, $c := .app.status.conditions}} 3090 # {{if not $index}},{{end}} 3091 # {{if $index}},{{end}} 3092 # { 3093 # "title": "{{$c.type}}", 3094 # "value": "{{$c.message}}", 3095 # "short": true 3096 # } 3097 # {{end}} 3098 # ] 3099 # }] 3100 # template.app-sync-status-unknown: | 3101 # email: 3102 # subject: Application {{.app.metadata.name}} sync status is 'Unknown' 3103 # message: | 3104 # {{if eq .serviceType "slack"}}:exclamation:{{end}} Application {{.app.metadata.name}} sync is 'Unknown'. 3105 # Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}. 3106 # {{if ne .serviceType "slack"}} 3107 # {{range $c := .app.status.conditions}} 3108 # * {{$c.message}} 3109 # {{end}} 3110 # {{end}} 3111 # slack: 3112 # attachments: |- 3113 # [{ 3114 # "title": "{{ .app.metadata.name}}", 3115 # "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", 3116 # "color": "#E96D76", 3117 # "fields": [ 3118 # { 3119 # "title": "Sync Status", 3120 # "value": "{{.app.status.sync.status}}", 3121 # "short": true 3122 # }, 3123 # { 3124 # "title": "Repository", 3125 # "value": "{{.app.spec.source.repoURL}}", 3126 # "short": true 3127 # } 3128 # {{range $index, $c := .app.status.conditions}} 3129 # {{if not $index}},{{end}} 3130 # {{if $index}},{{end}} 3131 # { 3132 # "title": "{{$c.type}}", 3133 # "value": "{{$c.message}}", 3134 # "short": true 3135 # } 3136 # {{end}} 3137 # ] 3138 # }] 3139 # template.app-sync-succeeded: | 3140 # email: 3141 # subject: Application {{.app.metadata.name}} has been successfully synced. 3142 # message: | 3143 # {{if eq .serviceType "slack"}}:white_check_mark:{{end}} Application {{.app.metadata.name}} has been successfully synced at {{.app.status.operationState.finishedAt}}. 3144 # Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true . 3145 # slack: 3146 # attachments: |- 3147 # [{ 3148 # "title": "{{ .app.metadata.name}}", 3149 # "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}", 3150 # "color": "#18be52", 3151 # "fields": [ 3152 # { 3153 # "title": "Sync Status", 3154 # "value": "{{.app.status.sync.status}}", 3155 # "short": true 3156 # }, 3157 # { 3158 # "title": "Repository", 3159 # "value": "{{.app.spec.source.repoURL}}", 3160 # "short": true 3161 # } 3162 # {{range $index, $c := .app.status.conditions}} 3163 # {{if not $index}},{{end}} 3164 # {{if $index}},{{end}} 3165 # { 3166 # "title": "{{$c.type}}", 3167 # "value": "{{$c.message}}", 3168 # "short": true 3169 # } 3170 # {{end}} 3171 # ] 3172 # }] 3173 3174 # -- The trigger defines the condition when the notification should be sent 3175 ## For more information: https://argocd-notifications.readthedocs.io/en/stable/triggers/ 3176 triggers: {} 3177 # trigger.on-deployed: | 3178 # - description: Application is synced and healthy. Triggered once per commit. 3179 # oncePer: app.status.sync.revision 3180 # send: 3181 # - app-deployed 3182 # when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy' 3183 # trigger.on-health-degraded: | 3184 # - description: Application has degraded 3185 # send: 3186 # - app-health-degraded 3187 # when: app.status.health.status == 'Degraded' 3188 # trigger.on-sync-failed: | 3189 # - description: Application syncing has failed 3190 # send: 3191 # - app-sync-failed 3192 # when: app.status.operationState.phase in ['Error', 'Failed'] 3193 # trigger.on-sync-running: | 3194 # - description: Application is being synced 3195 # send: 3196 # - app-sync-running 3197 # when: app.status.operationState.phase in ['Running'] 3198 # trigger.on-sync-status-unknown: | 3199 # - description: Application status is 'Unknown' 3200 # send: 3201 # - app-sync-status-unknown 3202 # when: app.status.sync.status == 'Unknown' 3203 # trigger.on-sync-succeeded: | 3204 # - description: Application syncing has succeeded 3205 # send: 3206 # - app-sync-succeeded 3207 # when: app.status.operationState.phase in ['Succeeded'] 3208 # 3209 # For more information: https://argocd-notifications.readthedocs.io/en/stable/triggers/#default-triggers 3210 # defaultTriggers: | 3211 # - on-sync-status-unknown