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
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 |
| fullnameOverride | string | `nil` | String to fully override "argo-rollouts.fullname" template |
| 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 |
### Controller
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| containerSecurityContext | object | `{}` | Security Context to set on container level |
| 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` |
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. |
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-01-25 12:43:09 +00:00
| controller.livenessProbe | object | See [values.yaml] | Configure liveness [probe] for the controller |
2021-05-31 21:23:05 +00:00
| controller.metrics.enabled | bool | `false` | Deploy metrics service |
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 |
| controller.nodeSelector | object | `{}` | [Node selector] |
| controller.readinessProbe | object | See [values.yaml] | Configure readiness [probe] for the controller |
| controller.replicas | int | `1` | The number of controller pods to run |
| controller.resources | object | `{}` | Resource limits and requests for the controller pods. |
| controller.tolerations | list | `[]` | [Tolerations] for use with node taints |
2021-05-31 16:06:26 +00:00
| podAnnotations | object | `{}` | Annotations to be added to the Rollout pods |
| 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 |
| dashboard.enabled | bool | `false` | Deploy dashboard server |
| dashboard.extraArgs | list | `[]` | Additional command line arguments to pass to rollouts-dashboard. A list of flags. |
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 |
| dashboard.nodeSelector | object | `{}` | [Node selector] |
| dashboard.podSecurityContext | object | `{"runAsNonRoot":true}` | Security Context to set on pod level |
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 |
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 |
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/
2022-02-20 23:01:39 +00:00
[values.yaml]: https://github.com/argoproj/argo-helm/blob/argo-rollouts-2.10.0/charts/argo-rollouts/values.yaml