Skip to content

Commit

Permalink
Merge pull request #196 from fluxcd/docs/helmrelease-guide-changes
Browse files Browse the repository at this point in the history
  • Loading branch information
hiddeco authored Sep 3, 2020
2 parents 330e21e + 2727f4b commit 8b9abfb
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 25 deletions.
12 changes: 7 additions & 5 deletions docs/components/helm/controller.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,20 @@ releases with Kubernetes manifests.
![](../../_files/helm-controller.png)

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:

Expand Down
4 changes: 3 additions & 1 deletion docs/faq/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
29 changes: 15 additions & 14 deletions docs/guides/helmreleases.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
11 changes: 6 additions & 5 deletions docs/guides/sealed-secrets.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 8b9abfb

Please sign in to comment.