kluctl is the missing glue that puts together your (and any third-party) deployments into one large declarative Kubernetes deployment, while making it fully manageable (deploy, diff, prune, delete, ...) via one unified command line interface.
kluctl tries to be as flexible as possible, while remaining as simple as possible. It reuses established tools (e.g. kustomize and Helm), making it possible to re-use a large set of available third-party deployments.
kluctl works completely locally, on the same machines that kubectl
runs on. kluctl does not rely on any operators or other cluster-side components.
As long as the target cluster's kubeconfig is present locally, you are able to execute it from everywhere, including your
CI/CD pipelines or your laptop.
Use kluctl to:
- Organize large and complex deployments, consisting of many Helm charts and kustomize deployments
- Do the same for small and simple deployments, as the overhead is small
- Always know what the state of your deployments is by being able to run diffs on the whole deployment
- Always know what you actually changed after performing a deployment
- Keep your clusters clean by issuing regular prune calls
- Deploy the same deployment to multiple environments (dev, test, prod, ...), with flexible differences in configuration
- Manage multiple target clusters (in multiple clouds or bare-metal if you want)
- Manage encrypted secrets for multiple target environments and clusters (based on Sealed Secrets)
- Integrate it into your CI/CD pipelines and avoid putting too much logic into your shell scripts
Documentation can be found here: https://kluctl.io