mirror of
https://github.com/bitnami/charts.git
synced 2026-08-09 12:55:41 +08:00
[bitnami/argo-rollouts] Add marketing README (#36568)
ai-assisted=yes Signed-off-by: Javier J. Salmerón García <javier.salmeron@broadcom.com>
This commit is contained in:
@@ -0,0 +1,456 @@
|
||||
<!--- app-name: Argo Rollouts -->
|
||||
|
||||
# Bitnami Secure Images Helm chart for Argo Rollouts
|
||||
|
||||
Argo Rollouts is a Kubernetes controller and set of CRDs that provide advanced deployment capabilities such as blue-green, canary, and progressive delivery.
|
||||
|
||||
[Overview of Argo Rollouts](https://argoproj.github.io/rollouts)
|
||||
|
||||
Trademarks: This software listing is packaged by Bitnami. The respective trademarks mentioned in the offering are owned by the respective companies, and use of them does not imply any affiliation or endorsement.
|
||||
|
||||
## TL;DR
|
||||
|
||||
```console
|
||||
helm install my-release oci://registry-1.docker.io/bitnamicharts/argo-rollouts
|
||||
```
|
||||
|
||||
## Why use Bitnami Secure Images?
|
||||
|
||||
Those are hardened, minimal CVE images built and maintained by Bitnami. Bitnami Secure Images are based on the cloud-optimized, security-hardened enterprise [OS Photon Linux](https://vmware.github.io/photon/). Why choose BSI images?
|
||||
|
||||
- Hardened secure images of popular open source software with Near-Zero Vulnerabilities
|
||||
- Vulnerability Triage & Prioritization with VEX Statements, KEV and EPSS Scores
|
||||
- Compliance focus with FIPS, STIG, and air-gap options, including secure bill of materials (SBOM)
|
||||
- Software supply chain provenance attestation through in-toto
|
||||
- First class support for the internet's favorite Helm charts
|
||||
|
||||
Each image comes with valuable security metadata. You can view the metadata in [our public catalog here](https://app-catalog.vmware.com/bitnami/apps). Note: Some data is only available with [commercial subscriptions to BSI](https://bitnami.com/).
|
||||
|
||||
If you are looking for our previous generation of images based on Debian Linux, please see the [Bitnami Legacy registry](https://hub.docker.com/u/bitnamilegacy).
|
||||
|
||||
## Introduction
|
||||
|
||||
Bitnami charts for Helm are carefully engineered, actively maintained, and are the quickest and easiest way to deploy containers on a Kubernetes cluster that are ready to handle production workloads.
|
||||
|
||||
This chart bootstraps [Argo Rollouts](https://argoproj.github.io/rollouts/) on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It deploys an Argo Rollouts **controller** Deployment and an optional **dashboard** Deployment (kubectl-argo-rollouts UI), along with the required CRDs, RBAC, and network policies.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.25+
|
||||
- Helm 3.8+
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
If your registry requires authentication, log in and create a pull secret:
|
||||
|
||||
```console
|
||||
helm registry login REGISTRY_NAME
|
||||
kubectl create secret docker-registry SECRET_NAME -n NAMESPACE \
|
||||
--docker-server REGISTRY_NAME \
|
||||
--docker-username "USER" \
|
||||
--docker-password "TOKEN"
|
||||
```
|
||||
|
||||
> **Note**: Replace `REGISTRY_NAME`, `SECRET_NAME`, `NAMESPACE`, `USER`, and `TOKEN` with your actual values.
|
||||
|
||||
Install the chart with the release name `my-release`:
|
||||
|
||||
```console
|
||||
helm install my-release oci://registry-1.docker.io/bitnamicharts/argo-rollouts \
|
||||
--set "global.imagePullSecrets[0]=SECRET_NAME"
|
||||
```
|
||||
|
||||
The command deploys Argo Rollouts on the Kubernetes cluster with the default configuration. The [Parameters](#parameters) section lists the parameters that can be configured during installation.
|
||||
|
||||
> **Tip**: List all releases using `helm list`
|
||||
|
||||
## Uninstalling the Chart
|
||||
|
||||
```console
|
||||
helm uninstall my-release
|
||||
```
|
||||
|
||||
> **Note**: The CRDs installed by this chart carry the `helm.sh/resource-policy: keep` annotation and are **not** deleted by `helm uninstall`. Remove them manually if you want a full cleanup:
|
||||
>
|
||||
> ```console
|
||||
> kubectl delete crd rollouts.argoproj.io analysisruns.argoproj.io analysistemplates.argoproj.io clusteranalysistemplates.argoproj.io experiments.argoproj.io
|
||||
> ```
|
||||
|
||||
## Configuration and installation details
|
||||
|
||||
### [Rolling VS Immutable tags](https://techdocs.broadcom.com/us/en/vmware-tanzu/bitnami-secure-images/bitnami-secure-images/services/bsi-doc/apps-tutorials-understand-rolling-tags-containers-index.html)
|
||||
|
||||
It is strongly recommended to use immutable tags in a production environment. This ensures your deployment does not change automatically if the same tag is updated with a different image.
|
||||
|
||||
Bitnami will release a new chart updating its containers if a new version of the main container, significant changes, or critical vulnerabilities exist.
|
||||
|
||||
### Dashboard
|
||||
|
||||
The Argo Rollouts dashboard is enabled by default. Disable it by setting `dashboard.enabled=false`. The dashboard has **no built-in authentication** — secure it using ingress-level authentication (for example [oauth2-proxy](https://oauth2-proxy.github.io/oauth2-proxy/)), network policies (`dashboard.networkPolicy.enabled=true`), or readonly mode (`dashboard.readonly=true`).
|
||||
|
||||
Access the dashboard via port-forward after install:
|
||||
|
||||
```console
|
||||
kubectl port-forward svc/my-release-argo-rollouts-dashboard 3100:3100
|
||||
```
|
||||
|
||||
### Namespace-scoped vs. cluster-scoped installation
|
||||
|
||||
By default the controller is installed cluster-scoped (`controller.rbac.clusterInstall=true`), which allows it to manage Rollouts across all namespaces. To restrict it to the release namespace only, set `controller.rbac.clusterInstall=false` — the chart will create a `Role` and `RoleBinding` instead of a `ClusterRole` and `ClusterRoleBinding`.
|
||||
|
||||
### Gateway API
|
||||
|
||||
The dashboard can be exposed via [Gateway API](https://gateway-api.sigs.k8s.io/) HTTPRoute by setting `dashboard.httproute.enabled=true`. You must configure `dashboard.httproute.parentRefs` to point to your Gateway — the chart fails with a clear error if it is omitted.
|
||||
|
||||
The controller also supports Gateway API traffic routing for Rollout strategies (canary, blue-green). Enable the corresponding provider via `controller.rbac.providers.gatewayAPI=true` (default: `true`) to grant the controller the necessary RBAC permissions.
|
||||
|
||||
### Ingress
|
||||
|
||||
The dashboard supports standard Ingress by setting `dashboard.ingress.enabled=true`. Use `dashboard.ingress.hostname` for the primary host. Enable TLS with `dashboard.ingress.tls=true` (and optionally `dashboard.ingress.selfSigned=true` for a chart-generated certificate).
|
||||
|
||||
### Notifications
|
||||
|
||||
Argo Rollouts supports [notifications](https://argoproj.github.io/argo-rollouts/features/notifications/) for Slack, webhooks, and other channels. Configure the notification controller via:
|
||||
|
||||
- `notifications.notifiers`, `notifications.templates`, `notifications.triggers`, `notifications.subscriptions` — chart-managed ConfigMap (`argo-rollouts-notification-configmap`).
|
||||
- `notifications.existingConfigmap` — use a pre-existing ConfigMap instead.
|
||||
- `notifications.secret` — key-value map written to `argo-rollouts-notification-secret` (for API tokens, webhook URLs, etc.). The Secret is created only when this map is non-empty.
|
||||
|
||||
### Plugin configuration
|
||||
|
||||
The controller supports metric provider, step, and traffic router plugins. Configure them via `controller.metricProviderPlugins`, `controller.stepPlugins`, and `controller.trafficRouterPlugins`. The chart creates the `argo-rollouts-config` ConfigMap when any plugin values are set. Alternatively, supply your own ConfigMap with `controller.existingConfigmap`.
|
||||
|
||||
### Prometheus metrics
|
||||
|
||||
Enable Prometheus metrics export by setting `controller.metrics.enabled=true`. A dedicated metrics Service is created on `controller.containerPorts.metrics` (default 8090). Use `controller.metrics.serviceMonitor.enabled=true` to create a Prometheus Operator `ServiceMonitor`.
|
||||
|
||||
#### Prometheus requirements
|
||||
|
||||
A Prometheus instance must be running in your cluster to scrape the metrics Service.
|
||||
|
||||
#### Integration with Prometheus Operator
|
||||
|
||||
If the [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) is installed, set `controller.metrics.serviceMonitor.enabled=true`. Ensure `controller.metrics.serviceMonitor.selector` matches your Prometheus instance labels if needed.
|
||||
|
||||
### Resource requests and limits
|
||||
|
||||
Bitnami charts set resource requests and limits via `resourcesPreset`. For production workloads, override with explicit `controller.resources` and `dashboard.resources` values.
|
||||
|
||||
### Additional environment variables and extra manifests
|
||||
|
||||
Use `controller.extraEnvVars` / `dashboard.extraEnvVars` to inject environment variables. Use `extraDeploy` to deploy arbitrary additional Kubernetes objects alongside the chart (for example, a demo `Rollout` resource).
|
||||
|
||||
### RBAC
|
||||
|
||||
The chart uses `controller.rbac` to manage RBAC for the controller. Providers (Istio, Gateway API, Traefik, etc.) can be enabled individually under `controller.rbac.providers`. Each provider adds the minimum required API rules to the ClusterRole. Review enabled providers before deploying to production — the `glooPlatform` provider grants wildcard (`*`) access and triggers a warning in the NOTES.
|
||||
|
||||
## Parameters
|
||||
|
||||
### Global parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
|
||||
| `global.imageRegistry` | Global Docker image registry | `""` |
|
||||
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
|
||||
| `global.defaultStorageClass` | Global default StorageClass for Persistent Volume(s) | `""` |
|
||||
| `global.defaultFips` | Default value for the FIPS configuration (allowed values: '', restricted, relaxed, off). Can be overridden by the 'fips' object | `restricted` |
|
||||
| `global.security.allowInsecureImages` | Allows skipping image verification | `false` |
|
||||
| `global.compatibility.openshift.adaptSecurityContext` | Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation) | `auto` |
|
||||
| `global.compatibility.omitEmptySeLinuxOptions` | If set to true, removes the seLinuxOptions from the securityContexts when it is set to an empty object | `false` |
|
||||
|
||||
### Common parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------ | --------------------------------------------------------------------------------------- | --------------- |
|
||||
| `kubeVersion` | Override Kubernetes version | `""` |
|
||||
| `apiVersions` | Override Kubernetes API versions | `[]` |
|
||||
| `nameOverride` | String to partially override common.names.fullname | `""` |
|
||||
| `fullnameOverride` | String to fully override common.names.fullname | `""` |
|
||||
| `namespaceOverride` | String to fully override common.names.namespace | `""` |
|
||||
| `commonLabels` | Labels to add to all deployed objects | `{}` |
|
||||
| `commonAnnotations` | Annotations to add to all deployed objects | `{}` |
|
||||
| `clusterDomain` | Kubernetes cluster domain name | `cluster.local` |
|
||||
| `extraDeploy` | Array of extra objects to deploy with the release | `[]` |
|
||||
| `diagnosticMode.enabled` | Enable diagnostic mode (all probes will be disabled and the command will be overridden) | `false` |
|
||||
| `diagnosticMode.command` | Command to override all containers in the chart release | `["sleep"]` |
|
||||
| `diagnosticMode.args` | Args to override all containers in the chart release | `["infinity"]` |
|
||||
|
||||
### Argo Rollouts controller image parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
|
||||
| `controller.image.registry` | Argo Rollouts controller image registry | `REGISTRY_NAME` |
|
||||
| `controller.image.repository` | Argo Rollouts controller image repository | `REPOSITORY_NAME/argo-rollouts` |
|
||||
| `controller.image.digest` | Argo Rollouts controller image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` |
|
||||
| `controller.image.pullPolicy` | Argo Rollouts controller image pull policy | `IfNotPresent` |
|
||||
| `controller.image.pullSecrets` | Argo Rollouts controller image pull secrets | `[]` |
|
||||
| `controller.replicaCount` | Number of Argo Rollouts controller replicas to deploy | `2` |
|
||||
| `controller.rbac.create` | Create RBAC resources (ClusterRole/Role and bindings) and enable provider-specific rules | `true` |
|
||||
| `controller.rbac.clusterInstall` | Whether to install cluster-scoped (true) or namespace-scoped (false) | `true` |
|
||||
| `controller.rbac.createClusterAggregateRoles` | Create ClusterRole aggregations for view/edit/admin | `true` |
|
||||
| `controller.rbac.providers.istio` | Grant Istio VirtualService/DestinationRule access | `true` |
|
||||
| `controller.rbac.providers.smi` | Grant SMI TrafficSplit access | `false` |
|
||||
| `controller.rbac.providers.ambassador` | Grant Ambassador Mapping access | `false` |
|
||||
| `controller.rbac.providers.awsLoadBalancerController` | Grant AWS LBC TargetGroupBinding access | `false` |
|
||||
| `controller.rbac.providers.awsAppMesh` | Grant AWS App Mesh access | `false` |
|
||||
| `controller.rbac.providers.traefik` | Grant Traefik TraefikService access | `false` |
|
||||
| `controller.rbac.providers.apisix` | Grant Apisix ApisixRoute access | `false` |
|
||||
| `controller.rbac.providers.contour` | Grant Contour HTTPProxy access | `false` |
|
||||
| `controller.rbac.providers.glooPlatform` | Grant Gloo Platform RouteTable access | `false` |
|
||||
| `controller.rbac.providers.gatewayAPI` | Grant Gateway API HTTPRoute/TCPRoute access | `true` |
|
||||
| `controller.rbac.additionalRules` | Extra RBAC rules to add to the ClusterRole | `[]` |
|
||||
| `controller.logLevel` | Log level (debug, info, warn, error, fatal, panic) | `info` |
|
||||
| `controller.logFormat` | Log format (text, json) | `text` |
|
||||
| `controller.klogLevel` | Klog verbosity level | `0` |
|
||||
| `controller.extraArgs` | Extra arguments to pass to the controller | `[]` |
|
||||
| `controller.extraEnvVars` | Extra environment variables to set on the controller container | `[]` |
|
||||
| `controller.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for controller | `""` |
|
||||
| `controller.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for controller | `""` |
|
||||
| `controller.containerPorts.metrics` | Port for Prometheus metrics | `8090` |
|
||||
| `controller.containerPorts.healthz` | Port for health check | `8080` |
|
||||
| `controller.existingConfigmap` | Name of an existing ConfigMap with argo-rollouts configuration (argo-rollouts-config). | `""` |
|
||||
| `controller.metricProviderPlugins` | Metric provider plugin configuration (list of {name, location}) | `[]` |
|
||||
| `controller.stepPlugins` | Step plugin configuration | `[]` |
|
||||
| `controller.trafficRouterPlugins` | Traffic router plugin configuration | `[]` |
|
||||
| `controller.awsVerifyTargetGroup` | Verify AWS target group binding before scaling down | `false` |
|
||||
| `controller.awsTargetGroupBindingAPIVersion` | AWS TargetGroupBinding API version | `""` |
|
||||
| `controller.albTagKeyResourceID` | ALB tag key for resource ID | `""` |
|
||||
| `controller.selfServiceNotification` | Enable self-service notification | `false` |
|
||||
| `controller.fips.golang` | Configure Golang FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used | `""` |
|
||||
| `controller.startupProbe.enabled` | Enable startupProbe on Argo Rollouts controller nodes | `false` |
|
||||
| `controller.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `10` |
|
||||
| `controller.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
||||
| `controller.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
||||
| `controller.startupProbe.failureThreshold` | Failure threshold for startupProbe | `3` |
|
||||
| `controller.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
||||
| `controller.livenessProbe.enabled` | Enable livenessProbe on Argo Rollouts controller nodes | `true` |
|
||||
| `controller.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
||||
| `controller.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||
| `controller.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
|
||||
| `controller.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
||||
| `controller.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||
| `controller.readinessProbe.enabled` | Enable readinessProbe on Argo Rollouts controller nodes | `true` |
|
||||
| `controller.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
|
||||
| `controller.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||
| `controller.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
|
||||
| `controller.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
|
||||
| `controller.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||
| `controller.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
||||
| `controller.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
||||
| `controller.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
||||
| `controller.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if controller.resources is set (controller.resources is recommended for production). | `nano` |
|
||||
| `controller.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
||||
| `controller.podSecurityContext.enabled` | Enabled Argo Rollouts controller pods' Security Context | `true` |
|
||||
| `controller.podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
|
||||
| `controller.podSecurityContext.sysctls` | Set kernel settings using the sysctl interface | `[]` |
|
||||
| `controller.podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
|
||||
| `controller.podSecurityContext.fsGroup` | Set Argo Rollouts controller pod's Security Context fsGroup | `1001` |
|
||||
| `controller.containerSecurityContext.enabled` | Enabled Argo Rollouts controller containers' Security Context | `true` |
|
||||
| `controller.containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
|
||||
| `controller.containerSecurityContext.runAsUser` | Set Argo Rollouts controller containers' Security Context runAsUser | `1001` |
|
||||
| `controller.containerSecurityContext.runAsGroup` | Set Argo Rollouts controller containers' Security Context runAsGroup | `1001` |
|
||||
| `controller.containerSecurityContext.runAsNonRoot` | Set Argo Rollouts controller containers' Security Context runAsNonRoot | `true` |
|
||||
| `controller.containerSecurityContext.readOnlyRootFilesystem` | Set Argo Rollouts controller containers' Security Context readOnlyRootFilesystem | `true` |
|
||||
| `controller.containerSecurityContext.allowPrivilegeEscalation` | Set Argo Rollouts controller containers' Security Context allowPrivilegeEscalation | `false` |
|
||||
| `controller.containerSecurityContext.capabilities.drop` | Set Argo Rollouts controller containers' Security Context capabilities to be dropped | `["ALL"]` |
|
||||
| `controller.containerSecurityContext.seccompProfile.type` | Set Argo Rollouts controller container's Security Context seccomp profile | `RuntimeDefault` |
|
||||
| `controller.podAffinityPreset` | Pod affinity preset. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `controller.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||
| `controller.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `controller.affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `controller.nodeAffinityPreset.key` | Node label key to match. Ignored if `controller.affinity` is set | `""` |
|
||||
| `controller.nodeAffinityPreset.values` | Node label values to match. Ignored if `controller.affinity` is set | `[]` |
|
||||
| `controller.affinity` | Affinity for Argo Rollouts controller pods assignment | `{}` |
|
||||
| `controller.nodeSelector` | Node labels for Argo Rollouts controller pods assignment | `{}` |
|
||||
| `controller.tolerations` | Tolerations for Argo Rollouts controller pods assignment | `[]` |
|
||||
| `controller.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains | `[]` |
|
||||
| `controller.priorityClassName` | Argo Rollouts controller pods' priorityClassName | `""` |
|
||||
| `controller.terminationGracePeriodSeconds` | Seconds Argo Rollouts controller pods need to terminate gracefully | `30` |
|
||||
| `controller.updateStrategy.type` | Argo Rollouts controller deployment strategy type | `RollingUpdate` |
|
||||
| `controller.pdb.create` | Enable/disable a Pod Disruption Budget creation | `true` |
|
||||
| `controller.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` |
|
||||
| `controller.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to 1 if both `controller.pdb.minAvailable` and `controller.pdb.maxUnavailable` are empty. | `""` |
|
||||
| `controller.deploymentAnnotations` | Additional custom annotations for Argo Rollouts controller deployment | `{}` |
|
||||
| `controller.podAnnotations` | Annotations for Argo Rollouts controller pods | `{}` |
|
||||
| `controller.podLabels` | Extra labels for Argo Rollouts controller pods | `{}` |
|
||||
| `controller.metrics.enabled` | Enable the export of Prometheus metrics | `false` |
|
||||
| `controller.metrics.service.port` | Port to expose metrics on | `8090` |
|
||||
| `controller.metrics.service.annotations` | Annotations for metrics service | `{}` |
|
||||
| `controller.metrics.serviceMonitor.enabled` | if `true`, creates a Prometheus Operator ServiceMonitor (also requires `controller.metrics.enabled` to be `true`) | `false` |
|
||||
| `controller.metrics.serviceMonitor.namespace` | Namespace in which Prometheus is running | `""` |
|
||||
| `controller.metrics.serviceMonitor.interval` | Interval at which metrics should be scraped. | `""` |
|
||||
| `controller.metrics.serviceMonitor.scrapeTimeout` | Timeout after which the scrape is ended | `""` |
|
||||
| `controller.metrics.serviceMonitor.selector` | Prometheus instance selector labels | `{}` |
|
||||
| `controller.metrics.serviceMonitor.jobLabel` | The name of the label on the target service to use as the job name in prometheus. | `""` |
|
||||
| `controller.metrics.serviceMonitor.honorLabels` | honorLabels chooses the metric's labels on collisions with target labels | `false` |
|
||||
| `controller.metrics.serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` |
|
||||
| `controller.metrics.serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples before ingestion | `[]` |
|
||||
| `controller.networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `true` |
|
||||
| `controller.networkPolicy.allowExternal` | Don't require server label for connections | `true` |
|
||||
| `controller.networkPolicy.allowExternalEgress` | Allow the pod to access any range of port and all destinations. | `true` |
|
||||
| `controller.networkPolicy.extraIngress` | Add extra ingress rules to the NetworkPolicy | `[]` |
|
||||
| `controller.networkPolicy.extraEgress` | Add extra egress rules to the NetworkPolicy | `[]` |
|
||||
| `controller.networkPolicy.ingressNSMatchLabels` | Labels to match to allow traffic from other namespaces | `{}` |
|
||||
| `controller.networkPolicy.ingressNSPodMatchLabels` | Pod labels to match to allow traffic from other namespaces | `{}` |
|
||||
| `controller.serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
|
||||
| `controller.serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
|
||||
| `controller.serviceAccount.automountServiceAccountToken` | Whether to auto mount the service account token on the ServiceAccount resource | `false` |
|
||||
| `controller.serviceAccount.annotations` | Additional custom annotations for the ServiceAccount | `{}` |
|
||||
| `controller.automountServiceAccountToken` | Mount Service Account token in the controller pod | `true` |
|
||||
| `controller.autoscaling.hpa.enabled` | Enable Horizontal Pod Autoscaler for the controller | `false` |
|
||||
| `controller.autoscaling.hpa.minReplicas` | Minimum number of replicas | `1` |
|
||||
| `controller.autoscaling.hpa.maxReplicas` | Maximum number of replicas | `5` |
|
||||
| `controller.autoscaling.hpa.targetCPU` | Target CPU utilization percentage | `""` |
|
||||
| `controller.autoscaling.hpa.targetMemory` | Target memory utilization percentage | `""` |
|
||||
| `controller.autoscaling.hpa.behavior` | HPA scaling behavior | `{}` |
|
||||
| `controller.autoscaling.vpa.enabled` | Enable Vertical Pod Autoscaler for the controller | `false` |
|
||||
| `controller.autoscaling.vpa.updatePolicy.updateMode` | VPA update mode (Off, Initial, Recreate, Auto) | `Auto` |
|
||||
| `controller.autoscaling.vpa.controlledResources` | VPA controlled resources | `[]` |
|
||||
| `controller.autoscaling.vpa.maxAllowed` | Maximum allowed resource values | `{}` |
|
||||
| `controller.autoscaling.vpa.minAllowed` | Minimum allowed resource values | `{}` |
|
||||
| `controller.autoscaling.vpa.annotations` | Annotations to add to the VPA resource | `{}` |
|
||||
| `controller.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the controller container(s) | `[]` |
|
||||
| `controller.extraVolumes` | Optionally specify extra list of additional volumes for the controller pod(s) | `[]` |
|
||||
| `controller.sidecars` | Add additional sidecar containers to the controller pod(s) | `[]` |
|
||||
| `controller.initContainers` | Add additional init containers to the controller pod(s) | `[]` |
|
||||
|
||||
### Argo Rollouts dashboard image parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
|
||||
| `dashboard.image.registry` | Argo Rollouts dashboard image registry | `REGISTRY_NAME` |
|
||||
| `dashboard.image.repository` | Argo Rollouts dashboard image repository | `REPOSITORY_NAME/kubectl-argo-rollouts` |
|
||||
| `dashboard.image.digest` | Argo Rollouts dashboard image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` |
|
||||
| `dashboard.image.pullPolicy` | Argo Rollouts dashboard image pull policy | `IfNotPresent` |
|
||||
| `dashboard.image.pullSecrets` | Argo Rollouts dashboard image pull secrets | `[]` |
|
||||
| `dashboard.enabled` | Enable the Argo Rollouts dashboard | `true` |
|
||||
| `dashboard.replicaCount` | Number of Argo Rollouts dashboard replicas to deploy | `1` |
|
||||
| `dashboard.readonly` | Enable read-only mode for the dashboard | `false` |
|
||||
| `dashboard.rootPath` | Root path for the dashboard (sets --root-path flag) | `""` |
|
||||
| `dashboard.logLevel` | Log level (debug, info, warn, error, fatal, panic) | `info` |
|
||||
| `dashboard.klogLevel` | Klog verbosity level | `0` |
|
||||
| `dashboard.containerPorts.http` | Dashboard container HTTP port | `3100` |
|
||||
| `dashboard.extraArgs` | Extra arguments to pass to the dashboard | `[]` |
|
||||
| `dashboard.extraEnvVars` | Extra environment variables to set on the dashboard container | `[]` |
|
||||
| `dashboard.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for dashboard | `""` |
|
||||
| `dashboard.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for dashboard | `""` |
|
||||
| `dashboard.fips.golang` | Configure Golang FIPS mode: '', 'restricted', 'relaxed', 'off'. If empty (""), 'global.defaultFips' would be used | `""` |
|
||||
| `dashboard.startupProbe.enabled` | Enable startupProbe on Argo Rollouts dashboard nodes | `false` |
|
||||
| `dashboard.startupProbe.initialDelaySeconds` | Initial delay seconds for startupProbe | `10` |
|
||||
| `dashboard.startupProbe.periodSeconds` | Period seconds for startupProbe | `10` |
|
||||
| `dashboard.startupProbe.timeoutSeconds` | Timeout seconds for startupProbe | `1` |
|
||||
| `dashboard.startupProbe.failureThreshold` | Failure threshold for startupProbe | `3` |
|
||||
| `dashboard.startupProbe.successThreshold` | Success threshold for startupProbe | `1` |
|
||||
| `dashboard.livenessProbe.enabled` | Enable livenessProbe on Argo Rollouts dashboard nodes | `true` |
|
||||
| `dashboard.livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `10` |
|
||||
| `dashboard.livenessProbe.periodSeconds` | Period seconds for livenessProbe | `10` |
|
||||
| `dashboard.livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `1` |
|
||||
| `dashboard.livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
||||
| `dashboard.livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||
| `dashboard.readinessProbe.enabled` | Enable readinessProbe on Argo Rollouts dashboard nodes | `true` |
|
||||
| `dashboard.readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `10` |
|
||||
| `dashboard.readinessProbe.periodSeconds` | Period seconds for readinessProbe | `10` |
|
||||
| `dashboard.readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `1` |
|
||||
| `dashboard.readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
|
||||
| `dashboard.readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||
| `dashboard.customStartupProbe` | Custom startupProbe that overrides the default one | `{}` |
|
||||
| `dashboard.customLivenessProbe` | Custom livenessProbe that overrides the default one | `{}` |
|
||||
| `dashboard.customReadinessProbe` | Custom readinessProbe that overrides the default one | `{}` |
|
||||
| `dashboard.resourcesPreset` | Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if dashboard.resources is set (dashboard.resources is recommended for production). | `nano` |
|
||||
| `dashboard.resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
||||
| `dashboard.podSecurityContext.enabled` | Enabled Argo Rollouts dashboard pods' Security Context | `true` |
|
||||
| `dashboard.podSecurityContext.fsGroupChangePolicy` | Set filesystem group change policy | `Always` |
|
||||
| `dashboard.podSecurityContext.sysctls` | Set kernel settings using the sysctl interface | `[]` |
|
||||
| `dashboard.podSecurityContext.supplementalGroups` | Set filesystem extra groups | `[]` |
|
||||
| `dashboard.podSecurityContext.fsGroup` | Set Argo Rollouts dashboard pod's Security Context fsGroup | `1001` |
|
||||
| `dashboard.containerSecurityContext.enabled` | Enabled Argo Rollouts dashboard containers' Security Context | `true` |
|
||||
| `dashboard.containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `{}` |
|
||||
| `dashboard.containerSecurityContext.runAsUser` | Set Argo Rollouts dashboard containers' Security Context runAsUser | `1001` |
|
||||
| `dashboard.containerSecurityContext.runAsGroup` | Set Argo Rollouts dashboard containers' Security Context runAsGroup | `1001` |
|
||||
| `dashboard.containerSecurityContext.runAsNonRoot` | Set Argo Rollouts dashboard containers' Security Context runAsNonRoot | `true` |
|
||||
| `dashboard.containerSecurityContext.readOnlyRootFilesystem` | Set Argo Rollouts dashboard containers' Security Context readOnlyRootFilesystem | `true` |
|
||||
| `dashboard.containerSecurityContext.allowPrivilegeEscalation` | Set Argo Rollouts dashboard containers' Security Context allowPrivilegeEscalation | `false` |
|
||||
| `dashboard.containerSecurityContext.capabilities.drop` | Set Argo Rollouts dashboard containers' Security Context capabilities to be dropped | `["ALL"]` |
|
||||
| `dashboard.containerSecurityContext.seccompProfile.type` | Set Argo Rollouts dashboard container's Security Context seccomp profile | `RuntimeDefault` |
|
||||
| `dashboard.podAffinityPreset` | Pod affinity preset. Ignored if `dashboard.affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `dashboard.podAntiAffinityPreset` | Pod anti-affinity preset. Ignored if `dashboard.affinity` is set. Allowed values: `soft` or `hard` | `soft` |
|
||||
| `dashboard.nodeAffinityPreset.type` | Node affinity preset type. Ignored if `dashboard.affinity` is set. Allowed values: `soft` or `hard` | `""` |
|
||||
| `dashboard.nodeAffinityPreset.key` | Node label key to match. Ignored if `dashboard.affinity` is set | `""` |
|
||||
| `dashboard.nodeAffinityPreset.values` | Node label values to match. Ignored if `dashboard.affinity` is set | `[]` |
|
||||
| `dashboard.affinity` | Affinity for Argo Rollouts dashboard pods assignment | `{}` |
|
||||
| `dashboard.nodeSelector` | Node labels for Argo Rollouts dashboard pods assignment | `{}` |
|
||||
| `dashboard.tolerations` | Tolerations for Argo Rollouts dashboard pods assignment | `[]` |
|
||||
| `dashboard.topologySpreadConstraints` | Topology Spread Constraints for pod assignment | `[]` |
|
||||
| `dashboard.priorityClassName` | Argo Rollouts dashboard pods' priorityClassName | `""` |
|
||||
| `dashboard.updateStrategy.type` | Argo Rollouts dashboard deployment strategy type | `Recreate` |
|
||||
| `dashboard.autoscaling.hpa.enabled` | Enable Horizontal Pod Autoscaler for the dashboard | `false` |
|
||||
| `dashboard.autoscaling.hpa.minReplicas` | Minimum number of replicas | `1` |
|
||||
| `dashboard.autoscaling.hpa.maxReplicas` | Maximum number of replicas | `5` |
|
||||
| `dashboard.autoscaling.hpa.targetCPU` | Target CPU utilization percentage | `""` |
|
||||
| `dashboard.autoscaling.hpa.targetMemory` | Target memory utilization percentage | `""` |
|
||||
| `dashboard.autoscaling.hpa.behavior` | HPA scaling behavior | `{}` |
|
||||
| `dashboard.autoscaling.vpa.enabled` | Enable Vertical Pod Autoscaler for the dashboard | `false` |
|
||||
| `dashboard.autoscaling.vpa.updatePolicy.updateMode` | VPA update mode (Off, Initial, Recreate, Auto) | `Auto` |
|
||||
| `dashboard.autoscaling.vpa.controlledResources` | VPA controlled resources | `[]` |
|
||||
| `dashboard.autoscaling.vpa.maxAllowed` | Maximum allowed resource values | `{}` |
|
||||
| `dashboard.autoscaling.vpa.minAllowed` | Minimum allowed resource values | `{}` |
|
||||
| `dashboard.autoscaling.vpa.annotations` | Annotations to add to the VPA resource | `{}` |
|
||||
| `dashboard.pdb.create` | Enable/disable a Pod Disruption Budget creation | `false` |
|
||||
| `dashboard.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `""` |
|
||||
| `dashboard.pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. | `""` |
|
||||
| `dashboard.deploymentAnnotations` | Additional custom annotations for Argo Rollouts dashboard deployment | `{}` |
|
||||
| `dashboard.podAnnotations` | Annotations for Argo Rollouts dashboard pods | `{}` |
|
||||
| `dashboard.podLabels` | Extra labels for Argo Rollouts dashboard pods | `{}` |
|
||||
| `dashboard.service.type` | Dashboard service type | `ClusterIP` |
|
||||
| `dashboard.service.ports.http` | Dashboard service HTTP port | `3100` |
|
||||
| `dashboard.service.nodePorts.http` | Dashboard service NodePort for HTTP (if type is NodePort) | `""` |
|
||||
| `dashboard.service.loadBalancerIP` | Dashboard service LoadBalancer IP (if type is LoadBalancer) | `""` |
|
||||
| `dashboard.service.loadBalancerSourceRanges` | Dashboard service LoadBalancer source ranges | `[]` |
|
||||
| `dashboard.service.annotations` | Additional custom annotations for dashboard service | `{}` |
|
||||
| `dashboard.ingress.enabled` | Enable ingress record generation for the dashboard | `false` |
|
||||
| `dashboard.ingress.ingressClassName` | IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+) | `""` |
|
||||
| `dashboard.ingress.hostname` | Default host for the ingress record | `argo-rollouts.local` |
|
||||
| `dashboard.ingress.path` | Default path for the ingress record | `/` |
|
||||
| `dashboard.ingress.pathType` | Ingress path type | `ImplementationSpecific` |
|
||||
| `dashboard.ingress.tls` | Enable TLS configuration for the hostname defined at `dashboard.ingress.hostname` parameter | `false` |
|
||||
| `dashboard.ingress.selfSigned` | Create a TLS secret for this ingress record using self-signed certificates generated by Helm | `false` |
|
||||
| `dashboard.ingress.certManager` | Add the corresponding annotations for cert-manager integration | `false` |
|
||||
| `dashboard.ingress.annotations` | Additional annotations for the Ingress resource | `{}` |
|
||||
| `dashboard.ingress.extraHosts` | An array with additional hostname(s) to be covered with the ingress record | `[]` |
|
||||
| `dashboard.ingress.extraPaths` | An array with additional arbitrary paths that may need to be added to the ingress under the main host | `[]` |
|
||||
| `dashboard.ingress.extraTls` | TLS configuration for additional hostname(s) to be covered with this ingress record | `[]` |
|
||||
| `dashboard.ingress.extraRules` | Additional rules to be covered with this ingress record | `[]` |
|
||||
| `dashboard.ingress.secrets` | Custom TLS certificates as secrets | `[]` |
|
||||
| `dashboard.httproute.enabled` | Enable Gateway API HTTPRoute for the dashboard | `false` |
|
||||
| `dashboard.httproute.annotations` | Additional annotations for the HTTPRoute | `{}` |
|
||||
| `dashboard.httproute.parentRefs` | Gateway parent references (required when enabled) | `[]` |
|
||||
| `dashboard.httproute.hostnames` | Hostnames this HTTPRoute should match | `[]` |
|
||||
| `dashboard.httproute.rules` | HTTPRoute rules (if empty, a default backend rule is generated) | `[]` |
|
||||
| `dashboard.networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `true` |
|
||||
| `dashboard.networkPolicy.allowExternal` | Don't require server label for connections | `true` |
|
||||
| `dashboard.networkPolicy.allowExternalEgress` | Allow the pod to access any range of port and all destinations. | `true` |
|
||||
| `dashboard.networkPolicy.extraIngress` | Add extra ingress rules to the NetworkPolicy | `[]` |
|
||||
| `dashboard.networkPolicy.extraEgress` | Add extra egress rules to the NetworkPolicy | `[]` |
|
||||
| `dashboard.networkPolicy.ingressNSMatchLabels` | Labels to match to allow traffic from other namespaces | `{}` |
|
||||
| `dashboard.networkPolicy.ingressNSPodMatchLabels` | Pod labels to match to allow traffic from other namespaces | `{}` |
|
||||
| `dashboard.serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` |
|
||||
| `dashboard.serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
|
||||
| `dashboard.serviceAccount.automountServiceAccountToken` | Whether to auto mount the service account token on the ServiceAccount resource | `false` |
|
||||
| `dashboard.serviceAccount.annotations` | Additional custom annotations for the ServiceAccount | `{}` |
|
||||
| `dashboard.automountServiceAccountToken` | Mount Service Account token in the dashboard pod | `true` |
|
||||
| `dashboard.extraVolumeMounts` | Optionally specify extra list of additional volumeMounts for the dashboard container(s) | `[]` |
|
||||
| `dashboard.extraVolumes` | Optionally specify extra list of additional volumes for the dashboard pod(s) | `[]` |
|
||||
| `dashboard.sidecars` | Add additional sidecar containers to the dashboard pod(s) | `[]` |
|
||||
| `dashboard.initContainers` | Add additional init containers to the dashboard pod(s) | `[]` |
|
||||
|
||||
### Notifications parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------- | ----------------------------------------------------------------------- | ----- |
|
||||
| `notifications.existingConfigmap` | Name of an existing ConfigMap with notification configuration | `""` |
|
||||
| `notifications.secret` | Key-value pairs stored in the argo-rollouts-notification-secret Secret. | `{}` |
|
||||
| `notifications.notifiers` | Notification notifiers configuration | `{}` |
|
||||
| `notifications.templates` | Notification templates | `{}` |
|
||||
| `notifications.triggers` | Notification triggers | `{}` |
|
||||
| `notifications.subscriptions` | Default notification subscriptions | `{}` |
|
||||
|
||||
See `values.yaml` for all configurable parameters.
|
||||
Reference in New Issue
Block a user