argocd-helm/charts/argo-rollouts
Oliver Bähler 752e1c0580
feat(all): Add Documentation Guidelines (#1099)
* feat(all): Add Documentation Guidelines

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* Satisfy Linter

Signed-off-by: Oliver Bähler <oliverbaehler@hotmail.com>

* Apply changes from code review

Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>

* fix: Also add *.gotmpl to argo-rollouts/.helmignore

Signed-off-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>

Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>
2022-01-24 20:18:51 +01:00
..
ci chore(argo-rollouts): Define 2 separate tests (#949) 2021-09-27 16:09:43 +01:00
templates fix(argo-rollouts): Fix service name for ingress rollouts dashboard (#1084) 2022-01-11 23:35:29 +01:00
.helmignore feat(all): Add Documentation Guidelines (#1099) 2022-01-24 20:18:51 +01:00
Chart.yaml feat(all): Add Documentation Guidelines (#1099) 2022-01-24 20:18:51 +01:00
README.md feat(argo-rollouts): Add rollouts dashboard ingress support (#870) 2022-01-10 21:44:51 +01:00
values.yaml feat(argo-rollouts): Add rollouts dashboard ingress support (#870) 2022-01-10 21:44:51 +01:00

Argo Rollouts Chart

A Helm chart for Argo Rollouts, progressive delivery for Kubernetes.

Source code can be found here

Additional Information

This is a community maintained chart. This chart installs argo-rollouts, progressive delivery for Kubernetes.

The default installation is intended to be similar to the provided Argo Rollouts releases.

Prerequisites

  • Kubernetes 1.7+
  • Helm v3.0.0+

Installing the Chart

To install the chart with the release name my-release:

$ helm repo add argo https://argoproj.github.io/argo-helm
$ helm install my-release argo/argo-rollouts

UI Dashboard

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

⚠️ WARNING when the Service type is set to LoadBalancer or NodePort
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).

Chart Values

Key Type Default Description
apiVersionOverrides.ingress string "" String to override apiVersion of ingresses rendered by this helm chart
clusterInstall bool true false runs controller in namespaced mode (does not require cluster RBAC)
controller.component string "rollouts-controller" Value of label app.kubernetes.io/component
controller.image.pullPolicy string "IfNotPresent" Image pull policy
controller.image.registry string quay.io Registry to use
controller.image.repository string "argoproj/argo-rollouts" Repository to use
controller.image.tag string "" Overrides the image tag (default is the chart appVersion)
controller.extraArgs list [] Additional arguments for the controller. A list of flags.
controller.extraContainers list [] Literal yaml for extra containers to be added to controller deployment.
controller.resources object {} Resource limits and requests for the controller pods.
controller.tolerations list [] Tolerations for use with node taints
controller.affinity object {} Assign custom affinity rules to the deployment
controller.nodeSelector object {} Node selector
controller.metrics.enabled bool false Deploy metrics service
controller.metrics.serviceMonitor.enabled bool false Enable a prometheus ServiceMonitor
controller.metrics.serviceMonitor.additionalAnnotations object {} Annotations to be added to the ServiceMonitor
controller.metrics.serviceMonitor.additionalLabels object {} Labels to be added to the ServiceMonitor
imagePullSecrets list [] 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
crdAnnotations object {} Annotations to be added to all CRDs
podAnnotations object {} Annotations to be added to the Rollout pods
podLabels object {} Labels to be added to the Rollout pods
serviceAccount.create bool true Specifies whether a service account should be created
serviceAccount.annotations object {} Annotations to add to the service account
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
podSecurityContext object {"runAsNonRoot": true} Security Context to set on pod level
containerSecurityContext object {} Security Context to set on container level
dashboard.enabled bool false Deploy dashboard server
dashboard.component string "rollouts-dashboard" Value of label app.kubernetes.io/component
dashboard.image.pullPolicy string "IfNotPresent" Image pull policy
dashboard.image.registry string quay.io Registry to use
dashboard.image.repository string "argoproj/kubectl-argo-rollouts" Repository to use
dashboard.image.tag string "" Overrides the image tag (default is the chart appVersion)
dashboard.extraArgs list [] Additional arguments for the dashboard. A list of flags.
dashboard.resources object {} Resource limits and requests for the dashboard pods.
dashboard.service.externalIPs list [] Dashboard service external IPs
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
dashboard.service.type string ClusterIP Sets the type of the Service
dashboard.tolerations list [] Tolerations for use with node taints
dashboard.affinity object {} Assign custom affinity rules to the deployment
dashboard.nodeSelector object {} Node selector
dashboard.podSecurityContext object {"runAsNonRoot": true} Security Context to set on pod level
dashboard.containerSecurityContext object {} Security Context to set on container level
dashboard.serviceAccount.create bool true Specifies whether a dashboard service account should be created
dashboard.serviceAccount.annotations object {} Annotations to add to the dashboard service account
dashboard.serviceAccount.name string "" The name of the dashboard service account to use. If not set and create is true, a name is generated using the fullname template
dashboard.service.annotations object {} Dashboard service annotations
dashboard.service.labels object {} Dashboard service labels
dashboard.service.portName string dashboard Dashboard service port name
dashboard.service.port int 3100 Dashboard service port
dashboard.service.targetPort int 3100 Dashboard service target port
dashboard.ingress.enabled bool false Enable dashboard ingress support
dashboard.ingress.annotations object {} Dashboard ingress annotations
dashboard.ingress.labels object {} Dashboard ingress labels
dashboard.ingress.ingressClassName string "" Dashboard ingress class name
dashboard.ingress.hosts list [] Dashboard ingress hosts
dashboard.ingress.paths list ["/"] Dashboard ingress paths
dashboard.ingress.pathType string Prefix Dashboard ingress path type
dashboard.ingress.extraPaths list [] Dashboard ingress extra paths
dashboard.ingress.tls list [] Dashboard ingress tls

Upgrading

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.

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. 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