flux-system namespace when you install Flux:
| Controller | Resource Types | Primary Function |
|---|---|---|
| Source Controller | GitRepository, HelmRepository, OCIRepository, Bucket | Fetches and makes external artifacts available |
| Kustomize Controller | Kustomization | Builds and applies Kustomize overlays |
| Helm Controller | HelmRelease | Manages Helm chart lifecycle (install, upgrade, rollback) |
| Image Reflector & Automation | ImageRepository, ImagePolicy, ImageUpdateAutomation | Detects new image tags and updates Git manifests |
| Notification Controller | Alert, Receiver | Routes inbound webhooks and outbound notifications |
1. Source Controller
The Source Controller offers a consistent interface to pull artifacts from various external systems into your cluster. Supported sources:- Git repositories via
GitRepository - Helm chart repositories via
HelmRepository - OCI registries via
OCIRepository - S3-compatible buckets via
Bucket
Ensure you provide credentials for private Git, OCI or S3 repositories via Kubernetes Secrets.
2. Kustomize Controller
Use the Kustomize Controller when your repository holds raw YAML or Kustomize overlays. Define aKustomization resource that:
- References a fetched source (e.g.,
GitRepository). - Builds the Kustomize overlays.
- Applies the resulting manifests to your Kubernetes cluster.
3. Helm Controller
If you prefer Helm charts, Flux can fetch them via the Source Controller from Git, Helm repos, or OCI registries. Declare aHelmRelease to manage:
- Chart source and version
- Custom values
- Release settings (rollback, tests)
4. Image Controllers
Flux splits image automation into two controllers for granular control:| Controller | Role |
|---|---|
| Image Reflector | Periodically scans registries for new image tags, populating ImageRepository resources |
| Image Automation | Observes ImagePolicy updates and rewrites Git manifests via ImageUpdateAutomation |
game:v2) matches your policy, Flux commits the updated image reference back to Git:
The Image Automation Controller requires write access to your Git repository. Ensure branch protections and commit permissions are configured securely.
5. Notification Controller
The Notification Controller connects Flux events with external systems:- Inbound: Listens for Git webhooks (GitHub, GitLab) or registry events to trigger immediate reconciliation.
- Outbound: Sends events (deployment success/failure, image updates, reconciliation errors) to channels like Slack, Teams, Discord, or email.
Alert and Receiver resources to route events:
Whenever the Source Controller pulls commits or the Image Automation Controller pushes an update, the Kustomize or Helm Controller reconciles your cluster to match the latest Git state—completing the GitOps loop.