Skip to content

devantler-tech/ksail

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2,272 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

License Go Reference codecov CI - Go

πŸ›₯️🐳 KSail

ksail

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 and providers.

Why?

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.

Key Features

  • πŸ“¦ One Binary β€” Embeds cluster provisioning, GitOps engines, and deployment tooling. No tool sprawl.
  • ☸️ Simple Clusters β€” Spin up Vanilla, K3s, or Talos clusters with one command. Same workflow across distributions.
  • πŸ“„ Everything as Code β€” Cluster settings, distribution configs, and workloads in version-controlled files.
  • πŸ”„ GitOps Native β€” Built-in Flux or ArgoCD support with bootstrap, push, and reconcile commands.
  • βš™οΈ Customizable Stack β€” Select your CNI, CSI, policy engine, cert-manager, and mirror registries.
  • πŸ” SOPS Built In β€” Encrypt, decrypt, and edit secrets with integrated cipher commands.
  • πŸ€– AI Assistant β€” Interactive chat powered by GitHub Copilot for configuration and troubleshooting.
  • πŸ’» VSCode Extension β€” Manage clusters from VSCode with wizards, sidebar views, and command palette.

Getting Started

Prerequisites

KSail works on all major operating systems and CPU architectures:

OS Architecture
🐧 Linux amd64, arm64
macOS arm64
⊞ Windows (untested) amd64, arm64

Docker is required for local clusters. Install Docker Desktop/Engine and ensure docker ps works.

Supported distributions run on different infrastructure providers:

Provider Vanilla K3s Talos
Docker βœ… (Kind) βœ… (K3d) βœ…
Hetzner β€” β€” βœ…

Note

If you want to see more distributions or providers supported, please consider sponsoring development via GitHub Sponsors. Testing and maintaining distribution x cloud provider support comes with additional financial costs for me, so sponsorships help make that feasible.

Talos on Hetzner is supported because I use it for my personal homelab, and so the support is maintained as part of my own platform work.

Installation

See the Installation Guide for detailed installation instructions.

VSCode Extension

For VSCode users, install the KSail extension to manage clusters directly from your editor. See the extension documentation for features and usage.

Usage

ksail-mental-model

# 1. Initialize a new project with your preferred stack
ksail cluster init \
  --name <cluster-name> \
  --distribution <Vanilla|K3s|Talos> \
  --cni <Default|Cilium|Calico> \
  --csi <Default|Enabled|Disabled> \
  --metrics-server <Default|Enabled|Disabled> \
  --cert-manager <Enabled|Disabled> \
  --policy-engine <None|Kyverno|Gatekeeper> \
  --gitops-engine <None|Flux|ArgoCD> \
  --mirror-registry <host>=<upstream>

# 2. Create and start the cluster
ksail cluster create

# 3. Add your manifests to the k8s/ directory

# 4. Deploy your workloads
ksail workload apply -k ./k8s   # kubectl workflow
ksail workload reconcile        # gitops workflow

# 5. Connect to the cluster with K9s
ksail cluster connect

Documentation

Browse the documentation at https://ksail.devantler.tech (GitHub Pages)

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on our development process, coding standards, and how to submit pull requests.

Related Projects

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.

Presentations

Blog Posts

Star History

Star History Chart

Sponsor this project

 

Packages

 
 
 

Contributors 11