Merge pull request #196 from fluxcd/docs/helmrelease-guide-changes
This commit is contained in:
@@ -6,18 +6,20 @@ releases with Kubernetes manifests.
|
||||

|
||||
|
||||
The desired state of a Helm release is described through a Kubernetes Custom Resource named `HelmRelease`.
|
||||
Based on the creation, mutation or removal of a HelmRelease resource in the cluster,
|
||||
Based on the creation, mutation or removal of a `HelmRelease` resource in the cluster,
|
||||
Helm actions are performed by the controller.
|
||||
|
||||
Features:
|
||||
|
||||
- Watches for `HelmRelease` objects and generates `HelmChart` objects
|
||||
- Supports `HelmChart` artifacts produced from `HelmRepository` and `GitRepository` sources
|
||||
- Fetches artifacts produced by [source-controller](../source/controller.md) from `HelmChart` objects
|
||||
- Watches `HelmChart` objects for revision changes (semver ranges)
|
||||
- Performs Helm v3 actions including Helm tests as configured in the `HelmRelease` objects
|
||||
- Runs Helm install/upgrade in a specific order, taking into account the depends-on relationship
|
||||
- Watches `HelmChart` objects for revision changes (including semver ranges for charts from `HelmRepository` sources)
|
||||
- Performs automated Helm actions, including Helm tests, rollbacks and uninstalls
|
||||
- Offers extensive configuration options for automated remediation (rollback, uninstall, retry) on failed Helm install, upgrade or test actions
|
||||
- Runs Helm install/upgrade in a specific order, taking into account the depends-on relationship defined in a set of `HelmRelease` objects
|
||||
- Prunes Helm releases removed from cluster (garbage collection)
|
||||
- Reports Helm releases status (alerting provided by [notification-controller](../notification/controller.md))
|
||||
- Reports Helm releases statuses (alerting provided by [notification-controller](../notification/controller.md))
|
||||
|
||||
Links:
|
||||
|
||||
|
||||
@@ -55,12 +55,14 @@ Support for custom commands and generators executed by fluxd in a POSIX shell |
|
||||
|
||||
Flux v1 | Toolkit component driven "Flux v2"
|
||||
---------------------------------- | ----------------------------------
|
||||
Declarative config in a single Helm custom resource | Declarative config through `HelmRepository`, `HelmChart` and `HelmRelease` custom resources
|
||||
Declarative config in a single Helm custom resource | Declarative config through `HelmRepository`, `GitRepository`, `HelmChart` and `HelmRelease` custom resources
|
||||
Chart synchronisation embedded in the operator | Extensive release configuration options, and a reconciliation interval per source
|
||||
Support for fixed SemVer versions from Helm repositories | Support for SemVer ranges for `HelmChart` resources
|
||||
Git repository synchronisation on a global interval | Planned support for charts from GitRepository sources
|
||||
Limited observability via the status object of the HelmRelease resource | Better observability via the HelmRelease status object, Kubernetes events, and notifications
|
||||
Resource heavy, relatively slow | Better performance
|
||||
Chart changes from Git sources are determined from Git metadata | Chart changes must be accompanied by a version bump in `Chart.yaml` to produce a new artifact
|
||||
Chart dependencies for charts from Git sources are downloaded by the operator | Chart dependencies must be committed to Git
|
||||
|
||||
#### Notifications, webhooks, observability
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ The [helm-controller](../components/helm/controller.md) allows you to
|
||||
declaratively manage Helm chart releases with Kubernetes manifests.
|
||||
It makes use of the artifacts produced by the
|
||||
[source-controller](../components/source/controller.md) from
|
||||
`HelmRepository` and `HelmChart` resources.
|
||||
`HelmRepository`, `GitRepository`, and `HelmChart` resources.
|
||||
The helm-controller is part of the default toolkit installation.
|
||||
|
||||
## Prerequisites
|
||||
@@ -63,25 +63,26 @@ metadata:
|
||||
spec:
|
||||
interval: 5m
|
||||
chart:
|
||||
name: podinfo
|
||||
version: '^4.0.0'
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: podinfo
|
||||
namespace: gitops-system
|
||||
interval: 1m
|
||||
spec:
|
||||
chart: podinfo
|
||||
version: '4.0.x'
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: podinfo
|
||||
namespace: gitops-system
|
||||
interval: 1m
|
||||
values:
|
||||
replicaCount: 2
|
||||
```
|
||||
|
||||
The `chart.name` is the name of the chart as made available by the Helm
|
||||
repository, and may not include any aliases.
|
||||
The `chart.spec.chart` is the name of the chart as made available by
|
||||
the Helm repository, and may not include any aliases.
|
||||
|
||||
The `chart.version` can be a fixed semver, or any semver range (i.e.
|
||||
`>=4.0.0 <4.0.2`).
|
||||
The `chart.spec.version` can be a fixed semver, or any semver range
|
||||
(i.e. `>=4.0.0 <5.0.0`).
|
||||
|
||||
The `chart` values are used by the helm-controller as a template to
|
||||
create a new `HelmChart` resource in the same namespace as the
|
||||
The `chart.spec` values are used by the helm-controller as a template
|
||||
to create a new `HelmChart` resource in the same namespace as the
|
||||
`sourceRef`. The source-controller will then lookup the chart in the
|
||||
artifact of the referenced `HelmRepository`, fetch the chart, and make
|
||||
it available as a `HelmChart` artifact to be used by the
|
||||
|
||||
@@ -136,11 +136,12 @@ metadata:
|
||||
namespace: gitops-system
|
||||
spec:
|
||||
chart:
|
||||
name: sealed-secrets
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: stable
|
||||
version: "^1.10.0"
|
||||
spec:
|
||||
chart: sealed-secrets
|
||||
sourceRef:
|
||||
kind: HelmRepository
|
||||
name: stable
|
||||
version: "1.10.x"
|
||||
interval: 1h0m0s
|
||||
releaseName: sealed-secrets
|
||||
targetNamespace: gitops-system
|
||||
|
||||
Reference in New Issue
Block a user