1## Custom resource configuration
3 # -- Install and upgrade CRDs
5 # -- Keep CRDs on chart uninstall
7 # -- Annotations to be added to all CRDs
9 # -- Additional labels to be added to all CRDs
11# -- Replica count for the deployment. It is not advised to run more than one replica.
14 # -- Default image repository
15 repository: cgr.dev/chainguard-private/argocd-image-updater
16 # -- Default image pull policy
18 # -- Overrides the image tag whose default is the chart appVersion
19 tag: latest@sha256:8e816fd2fc6e87dae6f6214b1cf0284b4aebeca833867a4ff2a0b1e01ec8cb5c
20# -- The deployment strategy to use to replace existing pods with new ones
23# -- ImagePullSecrets for the image updater deployment
25# -- Global name (argocd-image-updater.name in _helpers.tpl) override
27# -- Global fullname (argocd-image-updater.fullname in _helpers.tpl) override
29# -- Global namespace (argocd-image-updater.namespace in _helpers.tpl) override
31# -- Create cluster roles for cluster-wide installation.
32## Used when you manage applications in the same cluster where Argo CD Image Updater runs.
33## If you want to use this, please set `.Values.rbac.enabled` true as well.
34createClusterRoles: true
35# -- Extra arguments for argocd-image-updater not defined in `config.argocd`.
36# If a flag contains both key and value, they need to be split to a new entry.
38# - --disable-kubernetes
46# - --match-application-name
51# - --registries-conf-path
52# - /app/config/registries.conf
54# -- Extra environment variables for argocd-image-updater.
55## These variables are also available to the authentication scripts mounted under /scripts, provided 'authScripts.enabled' is set to 'true'.
60# value: "acr1.azurecr.io"
61# - name: ACR1_CLIENT_ID
62# value: "00000000-0000-0000-0000-000000000000"
64# -- Extra envFrom to pass to argocd-image-updater
67# name: config-map-name
71# -- Extra K8s manifests to deploy for argocd-image-updater.
72## Note: Supports use of custom Helm templates.
74# - apiVersion: secrets-store.csi.x-k8s.io/v1
75# kind: SecretProviderClass
77# name: argocd-image-updater-secrets-store
82# - objectName: "argocd-image-updater"
83# objectType: "secretsmanager"
86# objectAlias: "client_id"
87# - path: "client_secret"
88# objectAlias: "client_secret"
92# objectName: client_id
94# objectName: client_secret
95# secretName: argocd-image-updater-secrets-store
98# app.kubernetes.io/part-of: argocd
100# -- Init containers to add to the image updater pod
102# - name: download-tools
106# - wget -qO- https://get.helm.sh/helm-v2.16.1-linux-amd64.tar.gz | tar -xvzf - &&
107# mv linux-amd64/helm /custom-tools/
109# - mountPath: /custom-tools
112# -- Priority class for the deployment
115# -- Additional volumeMounts to the image updater main container
117# -- Additional volumes to the image updater pod
119## Use init containers to configure custom tooling
120## https://argo-cd.readthedocs.io/en/stable/operator-manual/custom_tools/
121## When using the volumes & volumeMounts section bellow, please comment out those above.
122# - name: custom-tools
126 # -- Name of the ConfigMap
127 name: argocd-image-updater-config
128 # -- Disable kubernetes events
130 # -- Username to use for Git commits
132 # -- E-Mail address to use for Git commits
134 # -- Changing the Git commit message
135 git.commit-message-template: ""
136 # -- Path to public SSH key mounted in container, or GPG key ID used to sign commits
137 git.commit-signing-key: ""
138 # -- Enables sign off on commits
139 git.commit-sign-off: false
140 # -- Method used to sign Git commits. `openpgp` or `ssh`
141 git.commit-signing-method: ""
142 # -- Argo CD Image Update log level
144 # -- Argo CD Image Updater registries list configuration. More information [here](https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/).
147 # api_url: https://registry-1.docker.io
149 # credentials: secret:foo/bar#creds
151 # - name: Google Container Registry
152 # api_url: https://gcr.io
155 # credentials: pullsecret:foo/bar
156 # - name: RedHat Quay
157 # api_url: https://quay.io
160 # credentials: env:REGISTRY_SECRET
162 # api_url: https://123456789.dkr.ecr.eu-west-1.amazonaws.com
163 # prefix: 123456789.dkr.ecr.eu-west-1.amazonaws.com
166 # credentials: ext:/scripts/auth1.sh
168 # - name: Azure Container Registry
169 # api_url: https://acr1.azurecr.io
170 # prefix: acr1.azurecr.io
172 # credentials: ext:/scripts/azure-workload-identity.sh
176 # -- Name of the sshConfig ConfigMap
177 name: argocd-image-updater-ssh-config
178 # -- Argo CD Image Updater ssh client parameter configuration
182 # PubkeyAcceptedAlgorithms +ssh-rsa
183 # HostkeyAlgorithms +ssh-rsa
184# whether to mount authentication scripts, if enabled, the authentication scripts will be mounted on /scripts that can be used to authenticate with registries (Azure, ECR)
185# refer to https://argocd-image-updater.readthedocs.io/en/stable/configuration/registries/#specifying-credentials-for-accessing-container-registries for more info
187 # -- Whether to mount the defined scripts that can be used to authenticate with a registry, the scripts will be mounted at `/scripts`
189 # -- Name of the authentication scripts ConfigMap
190 name: argocd-image-updater-authscripts
191 # -- Map of key-value pairs where the key consists of the name of the script and the value the contents.
192 ## Expect the script to output Docker credentials in the form: <username>:<password>
193 ## Authentication scripts can be used for various cloud providers like ECR or Azure Workload Identity.
194 ## For Azure Workload Identity, you can place your authentication script here to handle token acquisition.
198 # echo "auth script 1 here"
201 # echo "auth script 2 here"
202 # azure-workload-identity.sh: |
204 # # Example script for Azure Workload Identity.
205 # # This script would typically use environment variables set by the workload identity
206 # # to acquire an Azure AD token and authenticate with Azure Container Registry (ACR).
207 # # It should output the Docker username and password on stdout, e.g., '00000000-0000-0000-0000-000000000000:<token>'
209 # -- Specifies whether a service account should be created
211 # -- Annotations to add to the service account
213 # Example for Azure Workload Identity:
214 # azure.workload.identity/client-id: "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
215 # -- Labels to add to the service account
217 # Example for Azure Workload Identity:
218 # azure.workload.identity/use: "true"
219 # -- The name of the service account to use.
220 # If not set and create is true, a name is generated using the fullname template.
222# -- Pod Annotations for the deployment
224# -- Pod Labels for the deployment
226# azure.workload.identity/use: "true"
228# -- Pod security context settings for the deployment
229# @default -- See [values.yaml]
232# -- Security context settings for the deployment
233# @default -- See [values.yaml]
235 allowPrivilegeEscalation: false
239 readOnlyRootFilesystem: true
244 # -- Enable RBAC creation
246# -- Pod memory and cpu resource settings for the deployment
248# -- Kubernetes nodeSelector settings for the deployment
250# -- Kubernetes toleration settings for the deployment
252# -- Kubernetes affinity settings for the deployment
254# Metrics configuration
256 # -- Deploy metrics service
259 # -- Metrics service annotations
261 # -- Metrics service labels
263 # -- Metrics service port
266 # -- Enable a prometheus ServiceMonitor
268 # -- Prometheus ServiceMonitor interval
270 # -- Prometheus [RelabelConfigs] to apply to samples before scraping
272 # -- Prometheus [MetricRelabelConfigs] to apply to samples before ingestion
273 metricRelabelings: []
274 # -- Prometheus ServiceMonitor selector
276 # promtheus: kube-prometheus
278 # -- Prometheus ServiceMonitor namespace
280 # -- Prometheus ServiceMonitor labels
283 # -- Port for the webhook events
285 # -- Port for the probe endpoint
287 # -- Port for the metrics
289## Service configuration
291 # -- Enable a Service for the webhook endpoint. A Service is created when this is set to true or when `ingress.enabled` is true
293 # -- Service annotations
299 # -- Service http port for NodePort service type (only if `service.type` is set to "NodePort")
301 # -- Service http port
303 # -- Service http port name, can be used to route traffic via istio
304 servicePortHttpName: server-port
305 # -- The class of the load balancer implementation
306 loadBalancerClass: ""
307 # -- LoadBalancer will get created with the IP specified in this field
309 # -- Source IP ranges to allow access to service from
310 ## EKS Ref: https://repost.aws/knowledge-center/eks-cidr-ip-address-loadbalancer
311 ## GKE Ref: https://cloud.google.com/kubernetes-engine/docs/concepts/network-overview#limit-connectivity-ext-lb
312 loadBalancerSourceRanges: []
313 # -- Service external IPs
315 # -- Denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints
316 ## Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
317 externalTrafficPolicy: Cluster
318 # -- Used to maintain session affinity. Supports `ClientIP` and `None`
319 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
320 sessionAffinity: None
321# Ingress for the deployment
323 # -- Enable an ingress resource for the deployment
325 # -- Additional ingress labels
327 # -- Additional ingress annotations
329 # -- Defines which ingress controller will implement the resource
331 # -- deployment hostname
332 # @default -- `""` (defaults to global.domain)
334 # -- The path to deployment
336 # -- Ingress path type. One of `Exact`, `Prefix` or `ImplementationSpecific`
338 # -- The list of additional hostnames to be covered by ingress record
339 # @default -- `[]` (See [values.yaml])
341 # - name: argocd.example.com
344 # -- Additional ingress paths
345 # @default -- `[]` (See [values.yaml])
346 ## Note: Supports use of custom Helm templates
354 # name: use-annotation
356 # -- Ingress TLS configuration
358 # - secretName: argoworkflows-example-tls
360 # - argoworkflows.example.com
361# Configure dual-stack
363 # -- IP family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
365 # -- IP families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.