KSail is a CLI tool that bundles common Kubernetes tooling into a single binary. It provides one consistent interface to create clusters, deploy workloads, and operate cloud-native stacks across different distributions.
Setting up and operating Kubernetes clusters is a skill of its own, often requiring juggling multiple CLI tools, writing bespoke scripts, and dealing with inconsistent developer workflows, all determined by the specific project. This complexity and inconsistency slow down development, make Kubernetes hard for newcomers, and make it difficult to maintain reproducible environments and ways of working. KSail removes the tooling overhead so you can focus on your workloads.
π¦ One Binary β Embeds cluster provisioning, GitOps engines, and deployment tooling. No tool sprawl.
βΈοΈ Simple Clusters β Spin up Kind, K3d, or Talos clusters with one command. Same workflow across supported distributions and providers.
π Everything as Code β Cluster settings, distribution configs, and workloads all live in version-controlled files.
π GitOps Native β Opt into Flux or ArgoCD. KSail handles the bootstrap and gives you push and reconcile commands.
βοΈ Customizable Stack β Select your CNI, CSI, enable cert-manager, add mirror registries to match your setup.
π SOPS Built In β Encrypt, decrypt, and edit secrets with integrated cipher commands.
The binary works on all major operating systems and modern CPU archectures:
| OS | Arch |
|---|---|
| π§ Linux | amd64 and arm64 |
| ο£Ώ MacOS | arm64 |
| β Windows (untested) | amd64 and arm64 |
The supported distributions depend on different local and cloud providers:
| Distribution | Provider |
|---|---|
| Kind | Docker |
| K3d | Docker |
| Talos | Docker, Hetzner (π§ next) |
| EKS | Docker (π§ next) |
brew install --cask devantler-tech/tap/ksailgo install github.com/devantler-tech/ksail/v5@latestGet up and running with a simple kind cluster in four steps:
# 1. Initialize a new project with your preferred stack
ksail cluster init
# 2. Create and start the cluster
ksail cluster create
# Add your manifests to the k8s/kustomization.yaml file
# 3. Deploy your workloads
ksail workload apply -k ./k8s
# 4. Connect to the cluster with k9s
ksail cluster connect- Browse the documentation in
docs/(Markdown) or on https://ksail.devantler.tech (GitHub Pages).
- CONTRIBUTING.md β Contribution guide, development prerequisites, and workflows
- API Documentation β Go package documentation
KSail is a powerful tool that can be used in many different ways. Here are some projects that use KSail in their setup:
| Project | Description | Type |
|---|---|---|
| devantler-tech/platform | My personal homelab | Platform |
If you use KSail in your project, feel free to open a PR to add it to the list, so others can see how you use KSail.
- KSail - a Kubernetes SDK for local GitOps development and CI - A presentation on KSail at KCD2024 (Early version of KSail that was built in .NET).
