The kustomize-controller is a Flux component, specialized in running continuous delivery pipelines for infrastructure and workloads defined with Kubernetes manifests and assembled with Kustomize.
The cluster desired state is described through a Kubernetes Custom Resource named Kustomization
.
Based on the creation, mutation or removal of a Kustomization
resource in the cluster,
the controller performs actions to reconcile the cluster current state with the desired state.
- watches for
Kustomization
objects - fetches artifacts produced by source-controller from
Source
objects - watches
Source
objects for revision changes - generates the
kustomization.yaml
file if needed - generates Kubernetes manifests with Kustomize SDK
- decrypts Kubernetes secrets with Mozilla SOPS and KMS
- validates the generated manifests with Kubernetes server-side apply dry-run
- detects drift between the desired and state and cluster state
- corrects drift by patching objects with Kubernetes server-side apply
- prunes the Kubernetes objects removed from source
- checks the health of the deployed workloads
- runs
Kustomizations
in a specific order, taking into account the depends-on relationship - notifies whenever a
Kustomization
status changes
- Get started with Flux
- Setup Notifications
- Manage Kubernetes secrets with Flux and Mozilla SOPS
- How to build, publish and consume OCI Artifacts with Flux
- Flux and Kustomize FAQ
The roadmap for the Flux family of projects can be found at https://fluxcd.io/roadmap/.
This project is Apache 2.0 licensed and accepts contributions via GitHub pull requests. To start contributing please see the development guide.