This repo contains Flux config for a collection of clusters.
All clusters deploy a component bundle defined in a separate repo
Dependencies: Kubernetes cluster, kubectl client, Flux CLI, Taskfile
I recommend using a local Kubernetes cluster. Any should do, but I'm using k3d to manage multiple local clusters.
You can install the Taskfile CLI using
brew install go-task
. Alternatively, you can view the root Taskfile.yaml
and run the commands directly.
First, install Flux:
$ task install
Then, apply the Flux config for a specific cluster. This will sync the bundle repo with the cluster and apply the bundle to the cluster.
$ task camel:apply
There are other useful tasks to run, like deleting the Flux config or
uninstalling Flux. To see all available commands, run: task --list-all
Uses Kustomization to deploy bundle
Layers:
- Kustomization "flux-system", source: clusters-flux.git
- Kustomization "components", sources: clusters-flux.git, cluster-components-flux-kustomize.git
Similar to alpaca but with a single layer
Layers:
- Kustomization "components", sources: clusters-flux.git, cluster-components-flux-kustomize.git
Uses HelmRelease to deploy bundle
Layers:
- Kustomization "flux-system", source: clusters-flux.git
- HelmRelease "components", source: cluster-components-flux-helm.git
Similar to camel but with a single layer
Layers:
- HelmRelease "components", source: cluster-components-flux-helm.git
Cluster components are defined in a separate bundle repo. The bundle is synced to each cluster.
- HelmRelease-based bundle: https://github.com/merusso/cluster-components-flux-helm
- Kustomization-based bundle: https://github.com/merusso/cluster-components-flux-kustomize