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"