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