github.com/argoproj/argo-cd@v1.8.7/docs/operator-manual/argocd-cm.yaml (about)

     1  apiVersion: v1
     2  kind: ConfigMap
     3  metadata:
     4    name: argocd-cm
     5    namespace: argocd
     6    labels:
     7      app.kubernetes.io/name: argocd-cm
     8      app.kubernetes.io/part-of: argocd
     9  data:
    10    # Argo CD's externally facing base URL (optional). Required when configuring SSO
    11    url: https://argo-cd-demo.argoproj.io
    12  
    13    # Enables application status badge feature
    14    statusbadge.enabled: 'true'
    15  
    16    # Enables anonymous user access. The anonymous users get default role permissions specified argocd-rbac-cm.yaml.
    17    users.anonymous.enabled: "true"
    18  
    19    # Enables google analytics tracking is specified
    20    ga.trackingid: 'UA-12345-1'
    21    # Unless set to 'false' then user ids are hashed before sending to google analytics
    22    ga.anonymizeusers: 'false'
    23  
    24    # the URL for getting chat help, this will typically be your Slack channel for support
    25    help.chatUrl: 'https://mycorp.slack.com/argo-cd'
    26    # the text for getting chat help, defaults to "Chat now!"
    27    help.chatText: 'Chat now!'
    28  
    29    # A dex connector configuration (optional). See SSO configuration documentation:
    30    # https://github.com/argoproj/argo-cd/blob/master/docs/operator-manual/sso
    31    # https://github.com/dexidp/dex/tree/master/Documentation/connectors
    32    dex.config: |
    33      connectors:
    34        # GitHub example
    35        - type: github
    36          id: github
    37          name: GitHub
    38          config:
    39            clientID: aabbccddeeff00112233
    40            clientSecret: $dex.github.clientSecret
    41            orgs:
    42            - name: your-github-org
    43              teams:
    44              - red-team
    45      # It is possible to provide custom static client for dex if you want to reuse it
    46      # with other services
    47      # staticClients:
    48      # - id: argo-workflow
    49      #   name: Argo Workflow
    50      #   redirectURIs:
    51      #     - https://argo/oauth2/callback
    52      #   secret: $secretReference
    53  
    54    # OIDC configuration as an alternative to dex (optional).
    55    oidc.config: |
    56      name: Okta
    57      issuer: https://dev-123456.oktapreview.com
    58      clientID: aaaabbbbccccddddeee
    59      clientSecret: $oidc.okta.clientSecret
    60      # Optional set of OIDC scopes to request. If omitted, defaults to: ["openid", "profile", "email", "groups"]
    61      requestedScopes: ["openid", "profile", "email"]
    62      # Optional set of OIDC claims to request on the ID token.
    63      requestedIDTokenClaims: {"groups": {"essential": true}}
    64  
    65    # Git repositories configure Argo CD with (optional).
    66    # This list is updated when configuring/removing repos from the UI/CLI
    67    # Note: 'type: helm' field is supported in v1.3+. Use 'helm.repositories' for older versions.
    68    repositories: |
    69      - url: https://github.com/argoproj/my-private-repository
    70        passwordSecret:
    71          name: my-secret
    72          key: password
    73        usernameSecret:
    74          name: my-secret
    75          key: username
    76        sshPrivateKeySecret:
    77          name: my-secret
    78          key: sshPrivateKey
    79      - type: helm
    80        url: https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts
    81        name: istio.io
    82      - type: helm
    83        url: https://my-private-chart-repo.internal
    84        name: private-repo
    85        usernameSecret:
    86          name: my-secret
    87          key: username
    88        passwordSecret:
    89          name: my-secret
    90          key: password
    91  
    92    # Non-standard and private Helm repositories (deprecated in 1.3).
    93    helm.repositories: |
    94      - url: https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts
    95        name: istio.io
    96      - url: https://my-private-chart-repo.internal
    97        name: private-repo
    98        usernameSecret:
    99          name: my-secret
   100          key: username
   101        passwordSecret:
   102          name: my-secret
   103          key: password
   104  
   105    # Configuration to customize resource behavior (optional). Keys are in the form: group/Kind.
   106    resource.customizations: |
   107      admissionregistration.k8s.io/MutatingWebhookConfiguration:
   108        # List of json pointers in the object to ignore differences
   109        ignoreDifferences: |
   110          jsonPointers:
   111          - /webhooks/0/clientConfig/caBundle
   112      certmanager.k8s.io/Certificate:
   113        # Lua script for customizing the health status assessment
   114        health.lua: |
   115          hs = {}
   116          if obj.status ~= nil then
   117            if obj.status.conditions ~= nil then
   118              for i, condition in ipairs(obj.status.conditions) do
   119                if condition.type == "Ready" and condition.status == "False" then
   120                  hs.status = "Degraded"
   121                  hs.message = condition.message
   122                  return hs
   123                end
   124                if condition.type == "Ready" and condition.status == "True" then
   125                  hs.status = "Healthy"
   126                  hs.message = condition.message
   127                  return hs
   128                end
   129              end
   130            end
   131          end
   132          hs.status = "Progressing"
   133          hs.message = "Waiting for certificate"
   134          return hs
   135      cert-manager.io/Certificate:
   136        # Lua script for customizing the health status assessment
   137        health.lua: |
   138          hs = {}
   139          if obj.status ~= nil then
   140            if obj.status.conditions ~= nil then
   141              for i, condition in ipairs(obj.status.conditions) do
   142                if condition.type == "Ready" and condition.status == "False" then
   143                  hs.status = "Degraded"
   144                  hs.message = condition.message
   145                  return hs
   146                end
   147                if condition.type == "Ready" and condition.status == "True" then
   148                  hs.status = "Healthy"
   149                  hs.message = condition.message
   150                  return hs
   151                end
   152              end
   153            end
   154          end
   155          hs.status = "Progressing"
   156          hs.message = "Waiting for certificate"
   157          return hs
   158      apps/Deployment:
   159        # List of Lua Scripts to introduce custom actions
   160        actions: |
   161          # Lua Script to indicate which custom actions are available on the resource
   162          discovery.lua: |
   163            actions = {}
   164            actions["restart"] = {}
   165            return actions
   166          definitions:
   167            - name: restart
   168              # Lua Script to modify the obj
   169              action.lua: |
   170                local os = require("os")
   171                if obj.spec.template.metadata == nil then
   172                    obj.spec.template.metadata = {}
   173                end
   174                if obj.spec.template.metadata.annotations == nil then
   175                    obj.spec.template.metadata.annotations = {}
   176                end
   177                obj.spec.template.metadata.annotations["kubectl.kubernetes.io/restartedAt"] = os.date("!%Y-%m-%dT%XZ")
   178                return obj
   179  
   180    # Configuration to completely ignore entire classes of resource group/kinds (optional).
   181    # Excluding high-volume resources improves performance and memory usage, and reduces load and
   182    # bandwidth to the Kubernetes API server.
   183    # These are globs, so a "*" will match all values.
   184    # If you omit groups/kinds/clusters then they will match all groups/kind/clusters.
   185    # NOTE: events.k8s.io and metrics.k8s.io are excluded by default
   186    resource.exclusions: |
   187      - apiGroups:
   188        - repositories.stash.appscode.com
   189        kinds:
   190        - Snapshot
   191        clusters:
   192        - "*.local"
   193  
   194    # By default all resource group/kinds are included. The resource.inclusions setting allows customizing
   195    # list of included group/kinds.
   196    resource.inclusions: |
   197      - apiGroups:
   198        - repositories.stash.appscode.com
   199        kinds:
   200        - Snapshot
   201        clusters:
   202        - "*.local"
   203  
   204    resource.compareoptions: |
   205      # if ignoreAggregatedRoles set to true then differences caused by aggregated roles in RBAC resources are ignored.
   206      ignoreAggregatedRoles: true
   207  
   208      # disables status field diffing in specified resource types
   209      # 'crd' - CustomResourceDefinitions (default)
   210      # 'all' - all resources
   211      # 'none' - disabled
   212      ignoreResourceStatusField: crd
   213  
   214    # Configuration to add a config management plugin.
   215    configManagementPlugins: |
   216      - name: kasane
   217        init:
   218          command: [kasane, update]
   219        generate:
   220          command: [kasane, show]
   221  
   222    # Build options/parameters to use with `kustomize build` (optional)
   223    kustomize.buildOptions: --load_restrictor none
   224  
   225    # Additional Kustomize versions and corresponding binary paths
   226    kustomize.version.v3.5.1: /custom-tools/kustomize_3_5_1
   227    kustomize.version.v3.5.4: /custom-tools/kustomize_3_5_4
   228  
   229    # The metadata.label key name where Argo CD injects the app name as a tracking label (optional).
   230    # Tracking labels are used to determine which resources need to be deleted when pruning.
   231    # If omitted, Argo CD injects the app name into the label: 'app.kubernetes.io/instance'
   232    application.instanceLabelKey: mycompany.com/appname
   233  
   234    # disables admin user. Admin is enabled by default
   235    admin.enabled: "false"
   236    # add an additional local user with apiKey and login capabilities
   237    #   apiKey - allows generating API keys
   238    #   login - allows to login using UI
   239    accounts.alice: apiKey, login
   240    # disables user. User is enabled by default
   241    accounts.alice.enabled: "false"
   242  
   243    # The location of optional user-defined CSS that is loaded at runtime.
   244    # Local CSS Files:
   245    # - If the supplied path is to a file mounted on the argocd-server container, that file should be mounted 
   246    #   within a subdirectory of the existing "/shared/app" directory (e.g. "/shared/app/custom").  Otherwise,
   247    #   the file will likely fail to be imported by the browser with an "incorrect MIME type" error.
   248    # - The path should be specified relative to the "/shared/app" directory; not as an absolute path.
   249    # Remote CSS Files:
   250    # - Files may also be loaded from remote locations via fully qualified URLs.
   251    ui.cssurl: "./custom/my-styles.css"