argocd-helm/charts/argo-rollouts
MrWetsnow e4d94ad91e
feat(argo-rollouts): Allow setting the type for the dashboard service (#973)
* feat: Allow setting the type for the dashboard service. (We have a requirement
to run it as NodePort). Default to what it is if not set.

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Bump Chart version.

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Add serviceType into values.yaml

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Address review comments:

Remove old changes annotation.
Rename serviceType to service.type.

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Bump Chart version.

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Fix typo

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* FIx indentation (lint error)

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Update README

Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Update charts/argo-rollouts/README.md

Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>
Signed-off-by: Dan Tulovsky <dant@lightstep.com>

* Apply suggestions from code review

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

* fix changelog

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

* docs: Add warning about exposing the Dashboard via Service type

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

Co-authored-by: Marco Kilchhofer <mkilchhofer@users.noreply.github.com>
2021-12-09 16:12:58 +01:00
..
ci chore(argo-rollouts): Define 2 separate tests (#949) 2021-09-27 16:09:43 +01:00
templates feat(argo-rollouts): Allow setting the type for the dashboard service (#973) 2021-12-09 16:12:58 +01:00
.helmignore feat(argo-rollouts): add dashboard (#798) 2021-08-16 17:27:24 +02:00
Chart.yaml feat(argo-rollouts): Allow setting the type for the dashboard service (#973) 2021-12-09 16:12:58 +01:00
README.md feat(argo-rollouts): Allow setting the type for the dashboard service (#973) 2021-12-09 16:12:58 +01:00
values.yaml feat(argo-rollouts): Allow setting the type for the dashboard service (#973) 2021-12-09 16:12:58 +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). 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
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
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.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

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