1# -- Install and upgrade CRDs
3# -- Keep CRD's on helm uninstall
5# -- `false` runs controller in namespaced mode (does not require cluster RBAC)
7# -- flag to enable creation of cluster aggregate roles (requires cluster RBAC)
8createClusterAggregateRoles: true
9# -- String to partially override "argo-rollouts.fullname" template
11# -- String to fully override "argo-rollouts.fullname" template
13# -- Override the namespace
14# @default -- `.Release.Namespace`
16## Override APIVersions
17## If you want to template helm charts but cannot access k8s API server
18## you can set api versions here
20 # -- String to override apiVersion of ingresses rendered by this helm chart
21 ingress: "" # networking.k8s.io/v1beta1
22# -- Override the Kubernetes version, which is used to evaluate certain manifests
23kubeVersionOverride: ""
24# -- Additional manifests to deploy within the chart. A list of objects.
25## Can be used to add secrets for Analysis with 3rd-party monitoring solutions.
33# address: https://api.datadoghq.com
34# api-key: <datadog-api-key>
35# app-key: <datadog-app-key>
38 # -- Annotations for all deployed Deployments
39 deploymentAnnotations: {}
40 # -- Labels for all deployed Deployments
42 # -- Number of old deployment ReplicaSets to retain. The rest will be garbage collected.
43 revisionHistoryLimit: 10
44 # -- Specifies the deployment DNS configuration for controller and dashboard.
49 # - ns1.svc.cluster-domain.example
50 # - my.dns.search.suffix
57 # -- Value of label `app.kubernetes.io/component`
58 component: rollouts-controller
59 # -- Annotations to be added to the controller deployment
60 deploymentAnnotations: {}
61 # -- Labels to be added to the controller deployment
63 # -- Annotations to be added to application controller pods
65 # -- Labels to be added to the application controller pods
69 # -- [Tolerations] for use with node taints
71 # -- Assign custom [affinity] rules to the deployment
74 # -- Set the logging level (one of: `debug`, `info`, `warn`, `error`)
76 # -- Set the klog logging level
78 # -- Set the logging format (one of: `text`, `json`)
80 # -- Assign custom [TopologySpreadConstraints] rules to the controller
81 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
82 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
83 topologySpreadConstraints: []
85 # topologyKey: topology.kubernetes.io/zone
86 # whenUnsatisfiable: DoNotSchedule
88 # -- terminationGracePeriodSeconds for container lifecycle hook
89 terminationGracePeriodSeconds: 30
90 # -- Specify lifecycle hooks for the controller
92 # -- [priorityClassName] for the controller
94 # -- The number of controller pods to run
99 # -- Repository to use
100 repository: chainguard-private/argo-rollouts
101 # -- Overrides the image tag (default is the chart appVersion)
102 tag: 1.10.0@sha256:343cfb352bd3f8b0af40c8aefce5dd7bd710d014d8d35b798c3c19351dbdd760
103 # -- Image pull policy
104 pullPolicy: IfNotPresent
105 # -- Enable AWS target group verification before progressing through steps (requires AWS privileges)
106 awsVerifyTargetGroup: false
107 # -- Set the AWS TargetGroupBinding apiVersion (e.g. `elbv2.k8s.aws/v1beta1` for standard EKS, `eks.amazonaws.com/v1` for EKS Auto Mode)
108 awsTargetGroupBindingAPIVersion: ""
109 # -- Set the ALB tag key for resource ID (e.g. `ingress.k8s.aws/resource` for standard EKS, `ingress.eks.amazonaws.com` for EKS Auto Mode)
110 albTagKeyResourceID: ""
111 # -- Enable self-service notification support, allowing the controller to pull notification config from the rollout's namespace
112 selfServiceNotification: false
113 # -- Enable pprof profiling on the controller by specifying a listen address (e.g. `:6060` or `localhost:6060`)
115 # -- Additional command line arguments to pass to rollouts-controller. A list of flags.
117 # -- Additional environment variables for rollouts-controller. A list of name/value maps.
122 # -- Literal yaml for extra containers to be added to controller deployment.
123 ## Additional containers to add to the rollouts controller deployment
124 ## This will be rendered as the literal yaml
126 # -- Init containers to add to the rollouts controller pod
127 ## This will be rendered as the literal yaml
129 # - name: download-tools
135 # -- Resource limits and requests for the controller pods.
140 # ephemeral-storage: 1Gi
145 # -- flag to enable creation of cluster controller role (requires cluster RBAC)
146 createClusterRole: true
147 # Controller container ports
149 # -- Metrics container port
151 # -- Healthz container port
154 # -- Deploy metrics service
157 # -- Metrics service port name
159 # -- Metrics service port
161 # -- Service annotations
164 # -- Enable a prometheus ServiceMonitor
166 # -- Namespace to be used for the ServiceMonitor
168 # -- Labels to be added to the ServiceMonitor
170 # -- Annotations to be added to the ServiceMonitor
171 additionalAnnotations: {}
172 # -- RelabelConfigs to apply to samples before scraping
174 # -- MetricRelabelConfigs to apply to samples before ingestion
175 metricRelabelings: []
176 # -- TLS configuration for the ServiceMonitor. When set, scheme will be https
178 # caFile: /etc/istio-certs/root-cert.pem
179 # certFile: /etc/istio-certs/cert-chain.pem
180 # insecureSkipVerify: true
181 # keyFile: /etc/istio-certs/key.pem
182 # -- Configure liveness [probe] for the controller
183 # @default -- See [values.yaml]
188 initialDelaySeconds: 30
193 # -- Configure readiness [probe] for the controller
195 ## Configure Pod Disruption Budget for the controller
197 # -- Labels to be added to controller [Pod Disruption Budget]
199 # -- Annotations to be added to controller [Pod Disruption Budget]
201 # -- Deploy a [Pod Disruption Budget] for the controller
203 # -- Minimum number / percentage of pods that should remain scheduled
205 # -- Maximum number / percentage of pods that may be made unavailable
207 # -- Additional volumes to add to the controller pod
213 # -- Additional volumeMounts to add to the controller container
215 # - mountPath: /etc/ssl/certs
218 # -- Configures 3rd party metric providers for controller
219 ## Ref: https://argo-rollouts.readthedocs.io/en/stable/analysis/plugins/
220 metricProviderPlugins: []
221 # - name: "argoproj-labs/sample-prometheus" # name of the plugin, it must match the name required by the plugin so that it can find its configuration
222 # location: "file://./my-custom-plugin" # supports http(s):// urls and file://
224 # -- Configures 3rd party stepPlugins for controller
225 ## Ref: https://argo-rollouts.readthedocs.io/en/stable/features/canary/plugins/
227 # - name: "argoproj-labs/step-exec" # name of the plugin, it must match the name required by the plugin so it can find it's configuration
228 # location: "file://./my-custom-plugin" # supports http(s):// urls and file://
230 # -- Configures 3rd party traffic router plugins for controller
231 ## Ref: https://argo-rollouts.readthedocs.io/en/stable/features/traffic-management/plugins/
232 trafficRouterPlugins: []
233 # - name: "argoproj-labs/sample-nginx" # name of the plugin, it must match the name required by the plugin so it can find it's configuration
234 # location: "file://./my-custom-plugin" # supports http(s):// urls and file://
236 # -- Whether to create the argo-rollouts-config ConfigMap. Set to false when running multiple
237 # controller instances in the same namespace (e.g. with different --instance-id values) to
238 # avoid Helm ownership conflicts; each secondary instance will read the ConfigMap created by
239 # the primary release.
240 createConfigmap: true
242 # -- Specifies whether a service account should be created
244 # -- Annotations to add to the service account
246 # -- The name of the service account to use.
247 # If not set and create is true, a name is generated using the fullname template
249# -- Annotations to be added to all CRDs
251# -- Annotations for the all deployed pods
253# -- Security Context to set on pod level
256# -- Security Context to set on container level
257containerSecurityContext:
258 allowPrivilegeEscalation: false
262 readOnlyRootFilesystem: true
265# -- Annotations to be added to the Rollout service
266serviceAnnotations: {}
267# -- Labels to be added to the Rollout pods
269# -- Secrets with credentials to pull images from a private registry. Registry secret names as an array.
271# - name: argo-pull-secret
274 # -- Toggles addition of provider-specific RBAC rules to the controller Role and ClusterRole
276 # providerRBAC.enabled must be true in order to toggle the individual providers
278 # -- Adds RBAC rules for the Istio provider
280 # -- Adds RBAC rules for the SMI provider
282 # -- Adds RBAC rules for the Ambassador provider
284 # -- Adds RBAC rules for the AWS Load Balancer Controller provider
285 awsLoadBalancerController: true
286 # -- Adds RBAC rules for the AWS App Mesh provider
288 # -- Adds RBAC rules for the Traefik provider
290 # -- Adds RBAC rules for the Apisix provider
292 # -- Adds RBAC rules for the Contour provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-contour/blob/main/README.md`
294 # -- Adds RBAC rules for the Gloo Platform provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-glooplatform/blob/main/README.md`
296 # -- Adds RBAC rules for the Gateway API provider
298 # -- Additional RBAC rules for others providers
301 # -- Deploy dashboard server
303 # -- Set cluster role to readonly
305 # -- Value of label `app.kubernetes.io/component`
306 component: rollouts-dashboard
307 # -- Annotations to be added to the dashboard deployment
308 deploymentAnnotations: {}
309 # -- Labels to be added to the dashboard deployment
311 # -- Annotations to be added to application dashboard pods
313 # -- Labels to be added to the application dashboard pods
317 # -- [Tolerations] for use with node taints
319 # -- Assign custom [affinity] rules to the deployment
322 # -- Set the logging level (one of: `debug`, `info`, `warn`, `error`)
324 # -- Set the klog logging level
326 # -- Assign custom [TopologySpreadConstraints] rules to the dashboard server
327 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
328 ## If labelSelector is left out, it will default to the labelSelector configuration of the deployment
329 topologySpreadConstraints: []
331 # topologyKey: topology.kubernetes.io/zone
332 # whenUnsatisfiable: DoNotSchedule
334 # -- [priorityClassName] for the dashboard server
335 priorityClassName: ""
336 # -- flag to enable creation of dashbord cluster role (requires cluster RBAC)
337 createClusterRole: true
338 # -- The number of dashboard pods to run
343 # -- Repository to use
344 repository: chainguard-private/kubectl-argo-rollouts
345 # -- Overrides the image tag (default is the chart appVersion)
346 tag: 1.10.0@sha256:02d9486721e72113f4486735f0ea0d09b23d57cad22e42315e924c0123565c3f
347 # -- Image pull policy
348 pullPolicy: IfNotPresent
349 # -- Set the root path of the dashboard (e.g. `/rollouts`). Useful when running behind a reverse proxy with a path prefix.
351 # -- Additional command line arguments to pass to rollouts-dashboard. A list of flags.
353 # -- Additional environment variables for rollouts-dashboard. A list of name/value maps.
357 # -- Resource limits and requests for the dashboard pods.
359 # -- Security Context to set on pod level
362 # -- Security Context to set on container level
363 containerSecurityContext: {}
365 # -- Sets the type of the Service
367 # -- The class of the load balancer implementation
368 loadBalancerClass: ""
369 # -- LoadBalancer will get created with the IP specified in this field
371 # -- Source IP ranges to allow access to service from
372 loadBalancerSourceRanges: []
373 # -- Dashboard service external IPs
375 # -- Service annotations
379 # -- Service port name
383 # -- Service target port
385 # -- (int) Service nodePort
388 # -- Specifies whether a dashboard service account should be created
390 # -- Annotations to add to the dashboard service account
392 # -- The name of the service account to use.
393 # If not set and create is true, a name is generated using the fullname template
395 ## Configure Pod Disruption Budget for the dashboard
397 # -- Labels to be added to dashboard [Pod Disruption Budget]
399 # -- Annotations to be added to dashboard [Pod Disruption Budget]
401 # -- Deploy a [Pod Disruption Budget] for the dashboard
403 # -- Minimum number / percentage of pods that should remain scheduled
405 # -- Maximum number / percentage of pods that may be made unavailable
407 ## Ingress configuration.
408 ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
411 # -- Enable dashboard ingress support
413 # -- Dashboard ingress annotations
415 # -- Dashboard ingress labels
417 # -- Dashboard ingress class name
419 # -- Dashboard ingress hosts
420 ## Argo Rollouts Dashboard Ingress.
421 ## Hostnames must be provided if Ingress is enabled.
422 ## Secrets must be manually created in the namespace
424 # - argorollouts.example.com
426 # -- Dashboard ingress paths
429 # -- Dashboard ingress path type
431 # -- Dashboard ingress extra paths
435 # serviceName: ssl-redirect
436 # servicePort: use-annotation
437 ## for Kubernetes >=1.19 (when "networking.k8s.io/v1" is used)
444 # name: use-annotation
446 # -- Dashboard ingress tls
448 # - secretName: argorollouts-example-tls
450 # - argorollouts.example.com
451 ## HTTPRoute configuration (Gateway API).
452 ## ref: https://gateway-api.sigs.k8s.io/api-types/httproute/
455 # -- Enable HTTPRoute resource for the dashboard (Gateway API)
457 # -- Additional HTTPRoute labels
459 # -- Additional HTTPRoute annotations
461 # -- Gateway API parentRefs for the HTTPRoute
462 ## Must reference an existing Gateway
463 # @default -- `[]` (See [values.yaml])
465 # - name: example-gateway
466 # namespace: example-gateway-namespace
468 # -- List of hostnames for the HTTPRoute
469 # @default -- `[]` (See [values.yaml])
471 # - argorollouts.example.com
472 # -- HTTPRoute rules configuration
473 # @default -- `[]` (See [values.yaml])
480 # - type: RequestHeaderModifier
481 # requestHeaderModifier:
483 # - name: X-Custom-Header
484 # value: custom-value
486 # -- Additional volumes to add to the dashboard pod
488 # -- Additional volumeMounts to add to the dashboard container
492 # -- Whether to create notifications configmap
495 # -- Whether to create notifications secret.
496 ## If you want to manually create secret, do not forget to add proper label to it: "app.kubernetes.io/component: {{ .Values.controller.component }}".
498 # -- Generic key:value pairs to be inserted into the notifications secret
501 # -- Annotations to be added to the notifications secret
503 # -- Configures notification services
506 # token: $slack-token
508 # -- Notification templates
510 # template.my-purple-template: |
512 # Rollout {{.rollout.metadata.name}} has purple image
516 # "title": "{{ .rollout.metadata.name}}",
520 # -- The trigger defines the condition when the notification should be sent
522 # trigger.on-purple: |
523 # - send: [my-purple-template]
524 # when: rollout.spec.template.spec.containers[0].image == 'argoproj/rollouts-demo:purple'
526 # -- The subscriptions define the subscriptions to the triggers in a general way for all rollouts
531 # - on-rollout-completed
532 # - on-rollout-aborted