This commit adds support for optional values references, as discussions have brought to light that there are some valid use cases in which having this option is desirable. For example to allow a user to extend behaviour at a later date with their own repository without modifying the HelmRelease object. When a values reference is marked as optional, not found errors for the value reference are ignored, but any ValuesKey, TargetPath or transient error will still result in a reconciliation failure. |
||
|---|---|---|
| .github/workflows | ||
| api | ||
| config | ||
| controllers | ||
| docs | ||
| hack | ||
| .gitignore | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| DCO | ||
| Dockerfile | ||
| LICENSE | ||
| MAINTAINERS | ||
| Makefile | ||
| PROJECT | ||
| README.md | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
README.md
helm-controller
The helm-controller is a Kubernetes operator, allowing one to declaratively manage Helm chart releases. It is part of a composable GitOps toolkit and depends on source-controller to acquire the Helm charts from Helm repositories.
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, Helm actions are performed by the
operator.
Features
- Watches for
HelmReleaseobjects and generatesHelmChartobjects - Supports
HelmChartartifacts produced fromHelmRepository,GitRepositoryandBucketsources - Fetches artifacts produced by source-controller from
HelmChartobjects - Watches
HelmChartobjects for revision changes (including semver ranges for charts fromHelmRepositorysources) - 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
HelmReleaseobjects - Reports Helm release statuses (alerting provided by notification-controller)
