2021-05-31 16:06:26 +00:00
# Argo Rollouts Chart
2020-02-14 21:55:18 +00:00
2021-05-31 16:06:26 +00:00
A Helm chart for Argo Rollouts, progressive delivery for Kubernetes.
2020-02-14 21:55:18 +00:00
Source code can be found [here ](https://github.com/argoproj/argo-rollouts )
## Additional Information
2021-05-31 16:06:26 +00:00
2020-02-14 21:55:18 +00:00
This is a **community maintained** chart. This chart installs [argo-rollouts ](https://argoproj.github.io/argo-rollouts/ ), progressive delivery for Kubernetes.
The default installation is intended to be similar to the provided Argo Rollouts [releases ](https://github.com/argoproj/argo-rollouts/releases ).
## Prerequisites
- Kubernetes 1.7+
2021-05-31 16:06:26 +00:00
- Helm v3.0.0+
2020-02-14 21:55:18 +00:00
## Installing the Chart
To install the chart with the release name `my-release` :
```console
$ helm repo add argo https://argoproj.github.io/argo-helm
2021-05-31 16:06:26 +00:00
$ helm install my-release argo/argo-rollouts
2020-02-14 21:55:18 +00:00
```
2022-01-25 12:43:09 +00:00
2021-12-09 15:12:58 +00:00
### UI Dashboard
2020-02-14 21:55:18 +00:00
2021-08-16 15:27:24 +00:00
If dashboard is installed by `--set dashboard.enabled=true` , checkout the argo-rollouts dashboard by
`kubectl port-forward service/argo-rollouts-dashboard 31000:3100` and pointing the browser to `localhost:31000`
2021-12-09 15:12:58 +00:00
| :warning: WARNING when the Service type is set to LoadBalancer or NodePort |
|:---------------------------------------------------------------------------|
2022-01-10 20:44:51 +00:00
| The chart provides an option to change the service type (`dashboard.service.type`). Also it provides the ability to expose the dashboard via Ingress. Dashboard was never intended to be exposed as an administrative console -- it started out as a local view available via CLI. It should be protected by something (e.g. network access or even better an oauth proxy). |
2021-12-09 15:12:58 +00:00
2023-03-02 15:02:33 +00:00
## Changelog
For full list of changes please check ArtifactHub [changelog].
2020-02-14 21:55:18 +00:00
## Chart Values
2022-01-25 12:43:09 +00:00
### General parameters
2020-02-14 21:55:18 +00:00
| Key | Type | Default | Description |
|-----|------|---------|-------------|
2022-01-10 20:44:51 +00:00
| apiVersionOverrides.ingress | string | `""` | String to override apiVersion of ingresses rendered by this helm chart |
2021-05-31 16:06:26 +00:00
| clusterInstall | bool | `true` | `false` runs controller in namespaced mode (does not require cluster RBAC) |
2022-01-25 12:43:09 +00:00
| crdAnnotations | object | `{}` | Annotations to be added to all CRDs |
2022-08-23 02:43:13 +00:00
| createClusterAggregateRoles | bool | `true` | flag to enable creation of cluster aggregate roles (requires cluster RBAC) |
2022-07-15 11:43:03 +00:00
| extraObjects | list | `[]` | Additional manifests to deploy within the chart. A list of objects. |
2022-01-25 12:43:09 +00:00
| fullnameOverride | string | `nil` | String to fully override "argo-rollouts.fullname" template |
2023-05-23 07:07:34 +00:00
| global.deploymentAnnotations | object | `{}` | Annotations for all deployed Deployments |
2024-03-23 20:47:03 +00:00
| global.deploymentLabels | object | `{}` | Labels for all deployed Deployments |
2024-05-23 07:29:52 +00:00
| global.revisionHistoryLimit | int | `10` | Number of old deployment ReplicaSets to retain. The rest will be garbage collected. |
2022-01-25 12:43:09 +00:00
| imagePullSecrets | list | `[]` | Secrets with credentials to pull images from a private registry. Registry secret names as an array. |
| installCRDs | bool | `true` | Install and upgrade CRDs |
| keepCRDs | bool | `true` | Keep CRD's on helm uninstall |
| kubeVersionOverride | string | `""` | Override the Kubernetes version, which is used to evaluate certain manifests |
| nameOverride | string | `nil` | String to partially override "argo-rollouts.fullname" template |
2024-07-29 07:25:24 +00:00
| notifications.configmap.create | bool | `true` | Whether to create notifications configmap |
2022-03-14 21:12:41 +00:00
| notifications.notifiers | object | `{}` | Configures notification services |
2024-06-22 10:11:25 +00:00
| notifications.secret.annotations | object | `{}` | Annotations to be added to the notifications secret |
2024-09-16 13:37:59 +00:00
| notifications.secret.create | bool | `false` | Whether to create notifications secret. |
2022-03-14 21:12:41 +00:00
| notifications.secret.items | object | `{}` | Generic key:value pairs to be inserted into the notifications secret |
2024-06-26 10:39:03 +00:00
| notifications.subscriptions | list | `[]` | The subscriptions define the subscriptions to the triggers in a general way for all rollouts |
2022-03-14 21:12:41 +00:00
| notifications.templates | object | `{}` | Notification templates |
| notifications.triggers | object | `{}` | The trigger defines the condition when the notification should be sent |
2024-03-22 16:09:43 +00:00
| providerRBAC.additionalRules | list | `[]` | Additional RBAC rules for others providers |
2023-01-20 16:41:52 +00:00
| providerRBAC.enabled | bool | `true` | Toggles addition of provider-specific RBAC rules to the controller Role and ClusterRole |
| providerRBAC.providers.ambassador | bool | `true` | Adds RBAC rules for the Ambassador provider |
| providerRBAC.providers.apisix | bool | `true` | Adds RBAC rules for the Apisix provider |
| providerRBAC.providers.awsAppMesh | bool | `true` | Adds RBAC rules for the AWS App Mesh provider |
| providerRBAC.providers.awsLoadBalancerController | bool | `true` | Adds RBAC rules for the AWS Load Balancer Controller provider |
2023-12-07 17:49:59 +00:00
| providerRBAC.providers.contour | bool | `true` | Adds RBAC rules for the Contour provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-contour/blob/main/README.md` |
2024-03-26 08:35:50 +00:00
| providerRBAC.providers.gatewayAPI | bool | `true` | Adds RBAC rules for the Gateway API provider |
2024-01-07 04:30:45 +00:00
| providerRBAC.providers.glooPlatform | bool | `true` | Adds RBAC rules for the Gloo Platform provider, see `https://github.com/argoproj-labs/rollouts-plugin-trafficrouter-glooplatform/blob/main/README.md` |
2023-01-20 16:41:52 +00:00
| providerRBAC.providers.istio | bool | `true` | Adds RBAC rules for the Istio provider |
| providerRBAC.providers.smi | bool | `true` | Adds RBAC rules for the SMI provider |
| providerRBAC.providers.traefik | bool | `true` | Adds RBAC rules for the Traefik provider |
2022-01-25 12:43:09 +00:00
### Controller
| Key | Type | Default | Description |
|-----|------|---------|-------------|
2024-06-14 09:00:28 +00:00
| containerSecurityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}}` | Security Context to set on container level |
2022-01-25 12:43:09 +00:00
| controller.affinity | object | `{}` | Assign custom [affinity] rules to the deployment |
2021-05-31 16:06:26 +00:00
| controller.component | string | `"rollouts-controller"` | Value of label `app.kubernetes.io/component` |
2023-05-20 15:39:17 +00:00
| controller.containerPorts.healthz | int | `8080` | Healthz container port |
| controller.containerPorts.metrics | int | `8090` | Metrics container port |
2022-08-23 02:43:13 +00:00
| controller.createClusterRole | bool | `true` | flag to enable creation of cluster controller role (requires cluster RBAC) |
2023-05-23 07:07:34 +00:00
| controller.deploymentAnnotations | object | `{}` | Annotations to be added to the controller deployment |
2024-03-23 20:47:03 +00:00
| controller.deploymentLabels | object | `{}` | Labels to be added to the controller deployment |
2022-01-25 12:43:09 +00:00
| controller.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-controller. A list of flags. |
| controller.extraContainers | list | `[]` | Literal yaml for extra containers to be added to controller deployment. |
2022-06-17 08:12:52 +00:00
| controller.extraEnv | list | `[]` | Additional environment variables for rollouts-controller. A list of name/value maps. |
2021-05-31 16:06:26 +00:00
| controller.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
2022-01-25 12:43:09 +00:00
| controller.image.registry | string | `"quay.io"` | Registry to use |
2021-05-31 16:06:26 +00:00
| controller.image.repository | string | `"argoproj/argo-rollouts"` | Repository to use |
| controller.image.tag | string | `""` | Overrides the image tag (default is the chart appVersion) |
2022-08-26 16:40:01 +00:00
| controller.initContainers | list | `[]` | Init containers to add to the rollouts controller pod |
2022-01-25 12:43:09 +00:00
| controller.livenessProbe | object | See [values.yaml] | Configure liveness [probe] for the controller |
2023-12-14 08:39:20 +00:00
| controller.logging.format | string | `"text"` | Set the logging format (one of: `text` , `json` ) |
| controller.logging.kloglevel | string | `"0"` | Set the klog logging level |
| controller.logging.level | string | `"info"` | Set the logging level (one of: `debug` , `info` , `warn` , `error` ) |
2023-05-10 15:30:57 +00:00
| controller.metricProviderPlugins | object | `{}` | Configures 3rd party metric providers for controller |
2021-05-31 21:23:05 +00:00
| controller.metrics.enabled | bool | `false` | Deploy metrics service |
2023-07-25 00:22:46 +00:00
| controller.metrics.service.annotations | object | `{}` | Service annotations |
2023-05-20 15:39:17 +00:00
| controller.metrics.service.port | int | `8090` | Metrics service port |
| controller.metrics.service.portName | string | `"metrics"` | Metrics service port name |
2021-05-31 16:06:26 +00:00
| controller.metrics.serviceMonitor.additionalAnnotations | object | `{}` | Annotations to be added to the ServiceMonitor |
| controller.metrics.serviceMonitor.additionalLabels | object | `{}` | Labels to be added to the ServiceMonitor |
2022-01-25 12:43:09 +00:00
| controller.metrics.serviceMonitor.enabled | bool | `false` | Enable a prometheus ServiceMonitor |
2023-04-24 14:40:40 +00:00
| controller.metrics.serviceMonitor.metricRelabelings | list | `[]` | MetricRelabelConfigs to apply to samples before ingestion |
2023-08-16 07:01:43 +00:00
| controller.metrics.serviceMonitor.namespace | string | `""` | Namespace to be used for the ServiceMonitor |
2023-04-24 14:40:40 +00:00
| controller.metrics.serviceMonitor.relabelings | list | `[]` | RelabelConfigs to apply to samples before scraping |
2022-01-25 12:43:09 +00:00
| controller.nodeSelector | object | `{}` | [Node selector] |
2022-05-26 11:59:58 +00:00
| controller.pdb.annotations | object | `{}` | Annotations to be added to controller [Pod Disruption Budget] |
| controller.pdb.enabled | bool | `false` | Deploy a [Pod Disruption Budget] for the controller |
| controller.pdb.labels | object | `{}` | Labels to be added to controller [Pod Disruption Budget] |
| controller.pdb.maxUnavailable | string | `nil` | Maximum number / percentage of pods that may be made unavailable |
| controller.pdb.minAvailable | string | `nil` | Minimum number / percentage of pods that should remain scheduled |
2023-03-29 09:16:34 +00:00
| controller.podAnnotations | object | `{}` | Annotations to be added to application controller pods |
2024-05-06 00:24:13 +00:00
| controller.podLabels | object | `{}` | Labels to be added to the application controller pods |
2022-04-05 11:38:02 +00:00
| controller.priorityClassName | string | `""` | [priorityClassName] for the controller |
2022-01-25 12:43:09 +00:00
| controller.readinessProbe | object | See [values.yaml] | Configure readiness [probe] for the controller |
2022-03-23 21:11:46 +00:00
| controller.replicas | int | `2` | The number of controller pods to run |
2022-01-25 12:43:09 +00:00
| controller.resources | object | `{}` | Resource limits and requests for the controller pods. |
| controller.tolerations | list | `[]` | [Tolerations] for use with node taints |
2023-01-18 02:38:50 +00:00
| controller.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the controller |
2023-06-04 11:07:40 +00:00
| controller.trafficRouterPlugins | object | `{}` | Configures 3rd party traffic router plugins for controller |
2023-04-13 23:58:48 +00:00
| controller.volumeMounts | list | `[]` | Additional volumeMounts to add to the controller container |
| controller.volumes | list | `[]` | Additional volumes to add to the controller pod |
2023-03-29 09:16:34 +00:00
| podAnnotations | object | `{}` | Annotations for the all deployed pods |
2021-05-31 16:06:26 +00:00
| podLabels | object | `{}` | Labels to be added to the Rollout pods |
2022-01-25 12:43:09 +00:00
| podSecurityContext | object | `{"runAsNonRoot":true}` | Security Context to set on pod level |
2021-05-31 16:06:26 +00:00
| serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
2022-01-25 12:43:09 +00:00
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created |
2021-05-31 16:06:26 +00:00
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
2022-01-25 12:43:09 +00:00
| serviceAnnotations | object | `{}` | Annotations to be added to the Rollout service |
### Dashboard
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| dashboard.affinity | object | `{}` | Assign custom [affinity] rules to the deployment |
2021-08-16 15:27:24 +00:00
| dashboard.component | string | `"rollouts-dashboard"` | Value of label `app.kubernetes.io/component` |
2022-01-25 12:43:09 +00:00
| dashboard.containerSecurityContext | object | `{}` | Security Context to set on container level |
2022-08-23 02:43:13 +00:00
| dashboard.createClusterRole | bool | `true` | flag to enable creation of dashbord cluster role (requires cluster RBAC) |
2023-05-23 07:07:34 +00:00
| dashboard.deploymentAnnotations | object | `{}` | Annotations to be added to the dashboard deployment |
2024-03-23 20:47:03 +00:00
| dashboard.deploymentLabels | object | `{}` | Labels to be added to the dashboard deployment |
2022-01-25 12:43:09 +00:00
| dashboard.enabled | bool | `false` | Deploy dashboard server |
| dashboard.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-dashboard. A list of flags. |
2022-06-17 08:12:52 +00:00
| dashboard.extraEnv | list | `[]` | Additional environment variables for rollouts-dashboard. A list of name/value maps. |
2021-08-16 15:27:24 +00:00
| dashboard.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
2022-01-25 12:43:09 +00:00
| dashboard.image.registry | string | `"quay.io"` | Registry to use |
2021-08-16 15:27:24 +00:00
| dashboard.image.repository | string | `"argoproj/kubectl-argo-rollouts"` | Repository to use |
| dashboard.image.tag | string | `""` | Overrides the image tag (default is the chart appVersion) |
2022-01-25 12:43:09 +00:00
| dashboard.ingress.annotations | object | `{}` | Dashboard ingress annotations |
| dashboard.ingress.enabled | bool | `false` | Enable dashboard ingress support |
| dashboard.ingress.extraPaths | list | `[]` | Dashboard ingress extra paths |
| dashboard.ingress.hosts | list | `[]` | Dashboard ingress hosts |
| dashboard.ingress.ingressClassName | string | `""` | Dashboard ingress class name |
| dashboard.ingress.labels | object | `{}` | Dashboard ingress labels |
| dashboard.ingress.pathType | string | `"Prefix"` | Dashboard ingress path type |
| dashboard.ingress.paths | list | `["/"]` | Dashboard ingress paths |
| dashboard.ingress.tls | list | `[]` | Dashboard ingress tls |
2023-12-22 12:07:05 +00:00
| dashboard.logging.kloglevel | string | `"0"` | Set the klog logging level |
| dashboard.logging.level | string | `"info"` | Set the logging level (one of: `debug` , `info` , `warn` , `error` ) |
2022-01-25 12:43:09 +00:00
| dashboard.nodeSelector | object | `{}` | [Node selector] |
2022-05-26 11:59:58 +00:00
| dashboard.pdb.annotations | object | `{}` | Annotations to be added to dashboard [Pod Disruption Budget] |
| dashboard.pdb.enabled | bool | `false` | Deploy a [Pod Disruption Budget] for the dashboard |
| dashboard.pdb.labels | object | `{}` | Labels to be added to dashboard [Pod Disruption Budget] |
| dashboard.pdb.maxUnavailable | string | `nil` | Maximum number / percentage of pods that may be made unavailable |
| dashboard.pdb.minAvailable | string | `nil` | Minimum number / percentage of pods that should remain scheduled |
2023-03-29 09:16:34 +00:00
| dashboard.podAnnotations | object | `{}` | Annotations to be added to application dashboard pods |
2024-05-06 00:24:13 +00:00
| dashboard.podLabels | object | `{}` | Labels to be added to the application dashboard pods |
2022-01-25 12:43:09 +00:00
| dashboard.podSecurityContext | object | `{"runAsNonRoot":true}` | Security Context to set on pod level |
2022-04-05 11:38:02 +00:00
| dashboard.priorityClassName | string | `""` | [priorityClassName] for the dashboard server |
2022-06-01 17:09:51 +00:00
| dashboard.readonly | bool | `false` | Set cluster role to readonly |
2022-05-23 05:05:11 +00:00
| dashboard.replicas | int | `1` | The number of dashboard pods to run |
2021-08-16 15:27:24 +00:00
| dashboard.resources | object | `{}` | Resource limits and requests for the dashboard pods. |
2022-01-25 12:43:09 +00:00
| dashboard.service.annotations | object | `{}` | Service annotations |
2022-01-05 12:31:55 +00:00
| dashboard.service.externalIPs | list | `[]` | Dashboard service external IPs |
2022-01-25 12:43:09 +00:00
| dashboard.service.labels | object | `{}` | Service labels |
2024-08-31 10:12:52 +00:00
| dashboard.service.loadBalancerClass | string | `""` | The class of the load balancer implementation |
2022-01-05 12:31:55 +00:00
| dashboard.service.loadBalancerIP | string | `""` | LoadBalancer will get created with the IP specified in this field |
| dashboard.service.loadBalancerSourceRanges | list | `[]` | Source IP ranges to allow access to service from |
2022-02-20 23:01:39 +00:00
| dashboard.service.nodePort | int | `nil` | Service nodePort |
2022-01-25 12:43:09 +00:00
| dashboard.service.port | int | `3100` | Service port |
| dashboard.service.portName | string | `"dashboard"` | Service port name |
| dashboard.service.targetPort | int | `3100` | Service target port |
| dashboard.service.type | string | `"ClusterIP"` | Sets the type of the Service |
2021-08-16 15:27:24 +00:00
| dashboard.serviceAccount.annotations | object | `{}` | Annotations to add to the dashboard service account |
2022-01-25 12:43:09 +00:00
| dashboard.serviceAccount.create | bool | `true` | Specifies whether a dashboard service account should be created |
| dashboard.serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
| dashboard.tolerations | list | `[]` | [Tolerations] for use with node taints |
2023-01-18 02:38:50 +00:00
| dashboard.topologySpreadConstraints | list | `[]` | Assign custom [TopologySpreadConstraints] rules to the dashboard server |
2023-04-13 23:58:48 +00:00
| dashboard.volumeMounts | list | `[]` | Additional volumeMounts to add to the dashboard container |
| dashboard.volumes | list | `[]` | Additional volumes to add to the dashboard pod |
2021-05-31 16:06:26 +00:00
## Upgrading
2021-08-16 15:27:24 +00:00
### To 2.0.0
* The argo-rollouts dashboard is added to the template and can be enabled by setting `dashboard.enabled=true` .
* There is a breaking change where the selector label `app.kubernetes.io/component: {{ .Values.controller.component }}` is added to rollout's deployment and service in order to distinguish between the controller and the dashboard component.
To upgrade an existing installation, please **add the `--force` parameter** to the `helm upgrade` command or **delete the Deployment and Service resource** before you upgrade. This is necessary because Deployment's label selector is immutable.
2021-05-31 16:06:26 +00:00
### To 1.0.0
* This is a breaking change which only supports Helm v3.0.0+ now. If you still use Helm v2, please consider upgrading because v2 is EOL since November 2020.
To migrate to Helm v3 please have a look at the [Helm 2to3 Plugin ](https://github.com/helm/helm-2to3 ). This tool will convert the existing ConfigMap used for Tiller to a Secret of type `helm.sh/release.v1` .
* `quay.io` is the default registry now
* We introduce a template function for the labels here to reduce code duplication. This also affects the Deployment `matchLabels` selector.
To upgrade an existing installation, please **add the `--force` parameter** to the `helm upgrade` command or **delete the Deployment resource** before you upgrade. This is necessary because Deployment's label selector is immutable.
* All resources are now prefixed with the template `"argo-rollouts.fullname"` .
This enables the users to override resource names via the `nameOverride` and `fullnameOverride` parameters.
* Breaking parameters update
* `securityContext` was renamed to `containerSecurityContext`
* Added `controller.image.registry` . Prior to this chart version you had to override the registry via `controller.image.repository`
2022-01-25 12:43:09 +00:00
----------------------------------------------
Autogenerated from chart metadata using [helm-docs ](https://github.com/norwoodj/helm-docs )
[affinity]: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
[Node selector]: https://kubernetes.io/docs/user-guide/node-selection/
[probe]: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
[Tolerations]: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
2023-01-18 02:38:50 +00:00
[TopologySpreadConstraints]: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
2022-04-05 11:38:02 +00:00
[priorityClassName]: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
2022-05-26 11:59:58 +00:00
[Pod Disruption Budget]: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets
2022-09-30 22:29:03 +00:00
[values.yaml]: values.yaml
2023-03-02 15:02:33 +00:00
[changelog]: https://artifacthub.io/packages/helm/argo/argo-rollouts?modal=changelog