The GitOps Toolkit Helm reconciler, for declarative Helming
Go to file
Hidde Beydals d76f3a355b
controller: jitter requeue interval
This adds a `--interval-jitter-percentage` flag to the controller to
add a +/- percentage jitter to the interval defined in a HelmRelease
(defaults to 5%).

Effectively, this results in a reconciliation every 9.5 - 10.5 minutes
for a resource with an interval of 10 minutes.

Main reason to add this change is to mitigate spikes in memory and
CPU usage caused by many resources being configured with the same
interval.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-09 17:50:43 +02:00
.github ci: enable security-and-quality CodeQL query 2023-08-09 13:06:12 +02:00
api controller: jitter requeue interval 2023-08-09 17:50:43 +02:00
config controller: jitter requeue interval 2023-08-09 17:50:43 +02:00
docs controller: jitter requeue interval 2023-08-09 17:50:43 +02:00
hack Align docs structure with other controllers 2023-07-21 17:04:33 +02:00
internal controller: jitter requeue interval 2023-08-09 17:50:43 +02:00
tests/fuzz Align go.mod version with Kubernetes (Go 1.20) 2023-06-27 10:18:25 +03:00
.gitignore Refactor fuzzing 2022-01-17 20:45:16 +00:00
.goreleaser.yaml Disable goreleaser changelog 2023-06-22 14:59:51 +03:00
CHANGELOG.md Release v0.35.0 2023-07-04 10:36:07 +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 Align go.mod version with Kubernetes (Go 1.20) 2023-06-27 10:18:25 +03:00
Dockerfile Remove the tini supervisor 2023-05-24 11:05:53 +02: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 Align docs structure with other controllers 2023-07-21 17:04:33 +02: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 build(deps): bump github.com/docker/docker 2023-08-09 11:53:42 +00:00
go.sum build(deps): bump github.com/docker/docker 2023-08-09 11:53:42 +00:00
main.go controller: jitter requeue interval 2023-08-09 17:50:43 +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