[RFC-0012] Add support for `ExternalArtifact` source type |
||
|---|---|---|
| .github | ||
| api | ||
| config | ||
| docs | ||
| hack | ||
| internal | ||
| tests/fuzz | ||
| .gitignore | ||
| .goreleaser.yaml | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| DCO | ||
| DEVELOPMENT.md | ||
| Dockerfile | ||
| LICENSE | ||
| MAINTAINERS | ||
| Makefile | ||
| PROJECT | ||
| README.md | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
README.md
kustomize-controller
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.
Features
- watches for
Kustomizationobjects - fetches artifacts produced by source-controller from
Sourceobjects - watches
Sourceobjects for revision changes - generates the
kustomization.yamlfile 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
Kustomizationsin a specific order, taking into account the depends-on relationship - notifies whenever a
Kustomizationstatus changes
Specifications
Guides
- Get started with Flux
- Setup Notifications
- Manage Kubernetes secrets with Flux and SOPS
- How to build, publish and consume OCI Artifacts with Flux
- Flux and Kustomize FAQ
Roadmap
The roadmap for the Flux family of projects can be found at https://fluxcd.io/roadmap/.
Contributing
This project is Apache 2.0 licensed and accepts contributions via GitHub pull requests. To start contributing please see the development guide.
