The GitOps Toolkit Helm reconciler, for declarative Helming
Go to file
Hidde Beydals 2ba28c6d9e
Update Kubernetes, controller-runtime and Helm
This commit updates Kubernetes to v1.27, controller-runtime to
v0.15, and Helm to v3.12.

It deals with various breaking changes in controller-runtime, as
documented in the release notes:
https://github.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.0

In short:

- `Watches` now use a `client.Object` instead of a `source.Kind`.
- `handler.MapFunc` signature accepts a Go context, which is used to
  log any errors, instead of silently ignoring them and/or panicking.
- Max concurrent reconciles is configured on the manager, instead of
  configuring them per reconciler instance.
- Various manager configuration options have been moved to new
  structures and/or fields.

In addition to this, all other dependencies which had updates
available are updated to their latest versions as well.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-05-24 10:39:51 +02:00
.github/workflows build: update scan workflow 2023-03-20 10:59:34 +01:00
api api: update dependencies 2023-05-24 09:44:30 +02:00
config Release v0.33.0 2023-05-12 13:10:33 +02:00
docs Fix chart metadata by making it truly optional 2023-04-03 17:22:50 +03:00
hack Depend on the Kustomize API from `fluxcd/pkg` 2021-02-03 20:02:19 +01:00
internal Update Kubernetes, controller-runtime and Helm 2023-05-24 10:39:51 +02:00
tests/fuzz fuzz: Use build script from upstream 2022-12-14 21:45:45 +00:00
.gitignore Refactor fuzzing 2022-01-17 20:45:16 +00:00
.goreleaser.yaml release: pass `--yes` to cosign in signs 2023-03-08 13:48:41 +01:00
CHANGELOG.md Release v0.33.0 2023-05-12 13:10:33 +02:00
CODE_OF_CONDUCT.md Add DCO and code of conduct 2020-07-10 09:18:34 +03:00
DCO Add DCO and code of conduct 2020-07-10 09:18:34 +03:00
DEVELOPMENT.md update to new doc links structure 2022-08-30 14:52:13 +02:00
Dockerfile Update Alpine to 3.18 2023-05-10 09:26:50 -04:00
LICENSE Support Helm install action 2020-07-08 16:23:38 +02:00
MAINTAINERS Update MAINTAINERS info 2022-08-31 16:55:05 +02:00
Makefile build: update to Go 1.20 2023-03-01 15:52:08 +01:00
PROJECT Promote API to v2beta1 2020-09-30 19:37:23 +02:00
README.md update to new doc links structure 2022-08-30 14:52:13 +02:00
go.mod Update Kubernetes, controller-runtime and Helm 2023-05-24 10:39:51 +02:00
go.sum Update Kubernetes, controller-runtime and Helm 2023-05-24 10:39:51 +02:00
main.go Update Kubernetes, controller-runtime and Helm 2023-05-24 10:39:51 +02:00

README.md

helm-controller

CII Best Practices e2e report license release

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.

overview

Features

  • Watches for HelmRelease objects and generates HelmChart objects
  • Supports HelmChart artifacts produced from HelmRepository, GitRepository and Bucket sources
  • Fetches artifacts produced by source-controller from HelmChart objects
  • 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
  • Reports Helm release statuses (alerting provided by notification-controller)
  • Built-in Kustomize compatible Helm post renderer, providing support for strategic merge, JSON 6902 and images patches

Guides

Specifications