{"id":34600275,"url":"https://github.com/devantler-tech/ksail","last_synced_at":"2026-04-09T06:04:34.891Z","repository":{"id":214973547,"uuid":"737584922","full_name":"devantler-tech/ksail","owner":"devantler-tech","description":"Tool for creating, maintaining and operating Kubernetes clusters with ease.","archived":false,"fork":false,"pushed_at":"2026-02-26T06:51:11.000Z","size":730651,"stargazers_count":137,"open_issues_count":20,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-26T06:51:51.381Z","etag":null,"topics":["ai","app","argocd","cli","declarative","fluxcd","github-copilot","helm","hetzner","k3d","k3s","kind","kubeconform","kubectl","kubernetes","kustomize","mcp-server","talos-linux","tui","yaml"],"latest_commit_sha":null,"homepage":"http://ksail.devantler.tech/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devantler-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"devantler"}},"created_at":"2023-12-31T16:17:15.000Z","updated_at":"2026-02-26T02:55:53.000Z","dependencies_parsed_at":"2026-02-26T05:05:25.275Z","dependency_job_id":null,"html_url":"https://github.com/devantler-tech/ksail","commit_stats":null,"previous_names":["devantler/ksail","devantler-tech/ksail"],"tags_count":770,"template":false,"template_full_name":null,"purl":"pkg:github/devantler-tech/ksail","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devantler-tech%2Fksail","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devantler-tech%2Fksail/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devantler-tech%2Fksail/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devantler-tech%2Fksail/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devantler-tech","download_url":"https://codeload.github.com/devantler-tech/ksail/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devantler-tech%2Fksail/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29987726,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T22:42:38.399Z","status":"ssl_error","status_checked_at":"2026-03-01T22:41:51.863Z","response_time":124,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","app","argocd","cli","declarative","fluxcd","github-copilot","helm","hetzner","k3d","k3s","kind","kubeconform","kubectl","kubernetes","kustomize","mcp-server","talos-linux","tui","yaml"],"created_at":"2025-12-24T12:34:59.228Z","updated_at":"2026-04-09T06:04:34.882Z","avatar_url":"https://github.com/devantler-tech.png","language":"Go","readme":"\u003c!-- mcp-name: io.github.devantler-tech/ksail --\u003e\n[![GitHub Stars](https://img.shields.io/github/stars/devantler-tech/ksail?style=flat)](https://github.com/devantler-tech/ksail/stargazers)\n[![Latest Release](https://img.shields.io/github/v/release/devantler-tech/ksail)](https://github.com/devantler-tech/ksail/releases/latest)\n[![Go Report Card](https://goreportcard.com/badge/github.com/devantler-tech/ksail/v5)](https://goreportcard.com/report/github.com/devantler-tech/ksail/v5)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/license/apache-2-0)\n[![Go Reference](https://pkg.go.dev/badge/github.com/devantler-tech/ksail/v5.svg)](https://pkg.go.dev/github.com/devantler-tech/ksail/v5)\n[![codecov](https://codecov.io/gh/devantler-tech/ksail/graph/badge.svg?token=HSUfhaiXwq)](https://app.codecov.io/gh/devantler-tech/ksail)\n[![CI - KSail](https://github.com/devantler-tech/ksail/actions/workflows/ci.yaml/badge.svg)](https://github.com/devantler-tech/ksail/actions/workflows/ci.yaml)\n\n# 🛥️🐳 KSail\n\n![ksail](./docs/src/assets/ksail-cli-dark.png)\n\nKSail is a tool that bundles common Kubernetes tooling into a single binary. It provides a VSCode Extension, CLI, AI-Enabled Chat TUI or MCP interface to create clusters, deploy workloads, and operate cloud-native stacks across different distributions and providers.\n\n## Quick Install\n\n```bash\n# macOS / Linux (Homebrew)\nbrew install --cask devantler-tech/tap/ksail\n\n# Go (1.26.1+)\ngo install github.com/devantler-tech/ksail/v5@latest\n```\n\n\u003e See the [Installation Guide](https://ksail.devantler.tech/installation/) for binary downloads and more options.\n\n## Quick Start\n\n```bash\n# 1. Create a project and spin up a cluster (only requires Docker)\nksail cluster init --name my-app\nksail cluster create\n\n# 2. Connect to your cluster with K9s\nksail cluster connect\n```\n\nThat's it — zero to a running cluster in under a minute.\n\n## What KSail Replaces\n\nMost Kubernetes workflows require juggling multiple tools:\n\n```text\nkind + k3d + kubectl + helm + kustomize + flux + argocd + sops + k9s + kubeconform + ...\n```\n\nKSail bundles these into **one binary**:\n\n| Category                 | Built-in Capabilities                                      |\n|--------------------------|------------------------------------------------------------|\n| Cluster Provisioning     | Kind, K3d, Talos, VCluster (Vind)                          |\n| Container Orchestration  | kubectl, Helm, Kustomize                                   |\n| GitOps Engines           | Flux, ArgoCD                                               |\n| Secrets Management       | SOPS with Age encryption                                   |\n| Manifest Validation      | Kubeconform                                                |\n| Cluster Operations       | K9s, backup \u0026 restore                                      |\n| AI Integration           | Chat assistant (Copilot SDK), MCP server, VSCode extension |\n| Infrastructure Providers | Docker (local), Hetzner Cloud, Sidero Omni                 |\n\n**Only Docker is required** — no other tools to install, configure, or keep in sync.\n\n## Why KSail?\n\nSetting up and operating Kubernetes clusters often requires juggling multiple CLI tools, writing bespoke scripts, and dealing with inconsistent workflows. KSail removes the tooling overhead so you can focus on your workloads.\n\n## Key Features\n\n- 📦 **One Binary** — Embeds cluster provisioning, GitOps engines, and deployment tooling. No tool sprawl.\n- ☸️ **Simple Clusters** — Spin up Vanilla, K3s, Talos, or VCluster clusters with one command. Same workflow across distributions.\n- 🔓 **No Lock-In** — Uses native configs (`kind.yaml`, `k3d.yaml`, Talos patches, `vcluster.yaml`). Run clusters with or without KSail.\n- 📥 **Mirror Registries** — Avoid rate limits, and store images once. Same mirrors used by different clusters.\n- 📄 **Everything as Code** — Cluster settings, distribution configs, and workloads in version-controlled files.\n- 🔄 **GitOps Native** — Built-in Flux or ArgoCD support with bootstrap, push, and reconcile commands.\n- 🏢 **Multi-Tenancy** — Generate RBAC isolation, GitOps sync resources, and scaffold tenant repositories with `ksail tenant create` and `ksail tenant delete`.\n- ⚙️ **Customizable Stack** — Select your CNI, CSI, policy engine, cert-manager, and mirror registries.\n- 🔐 **SOPS Built In** — Encrypt, decrypt, and edit secrets with integrated cipher commands.\n- 💾 **Backup \u0026 Restore** — Export cluster resources to a compressed archive and restore to any cluster with provenance labels.\n- 🤖 **AI Assistant** — Interactive chat powered by GitHub Copilot for configuration and troubleshooting.\n- 💻 **VSCode Extension** — Manage clusters from VSCode via VS Code Kubernetes extension integration (Cloud Explorer, Cluster Explorer), wizards, and command palette.\n\n## Getting Started\n\n### Prerequisites\n\nKSail works on all major operating systems and CPU architectures:\n\n| OS                                            | Architecture |\n|-----------------------------------------------|--------------|\n| 🐧 Linux                                      | amd64, arm64 |\n|  macOS                                       | arm64        |\n| ⊞ Windows (native untested; WSL2 recommended) | amd64, arm64 |\n\nSupported distributions run on different infrastructure providers:\n\n| Provider | Vanilla  | K3s     | Talos | VCluster |\n|----------|----------|---------|-------|----------|\n| Docker   | ✅ (Kind) | ✅ (K3d) | ✅     | ✅ (Vind) |\n| Hetzner  | —        | —       | ✅     | —        |\n| Omni     | —        | —       | ✅     | —        |\n\n### Installation\n\nSee the [Installation Guide](https://ksail.devantler.tech/installation/) for detailed installation instructions including binary downloads and platform-specific options.\n\n## Usage\n\n```mermaid\nflowchart TD\n    Dev[\"🧑‍💻 Developer\"]\n\n    Dev --\u003e|\"edits\"| Project\n    Dev --\u003e|\"runs\"| KSail\n\n    subgraph Project [\"📁 Project Repository\"]\n        Config[\"ksail.yaml\"] ~~~ DistConfig[\"kind.yaml · k3d.yaml\u003cbr/\u003evcluster.yaml\"] ~~~ Manifests[\"k8s/ manifests\"]\n    end\n\n    KSail --\u003e|\"scaffolds \u0026 reads\"| Project\n    KSail --\u003e|\"provisions \u0026 operates\"| Cluster\n\n    subgraph KSail [\"🛥️ KSail — One Binary\"]\n        CLI[\"CLI Commands\"] ~~~ Tools[\"Kind · K3d · Talos · vCluster\u003cbr/\u003eFlux · ArgoCD · SOPS\u003cbr/\u003eHelm · Kustomize\"]\n    end\n\n    subgraph Cluster [\"☸️ Kubernetes Cluster\"]\n        Infra[\"CNI · CSI · Metrics\u003cbr/\u003eCert-Manager · Policy Engine\"] ~~~ Workloads[\"Your Workloads ✅\"]\n    end\n\n    Manifests -.-\u003e|\"GitOps sync\"| Workloads\n\n    style Dev fill:#f59e0b,stroke:#d97706,color:#000\n    style Project fill:#7c3aed22,stroke:#7c3aed\n    style KSail fill:#10b98122,stroke:#10b981\n    style Cluster fill:#3b82f622,stroke:#3b82f6\n    style CLI fill:#10b981,stroke:#059669,color:#000\n    style Tools fill:#065f46,stroke:#10b981,color:#fff\n    style Infra fill:#1e40af,stroke:#3b82f6,color:#fff\n    style Workloads fill:#166534,stroke:#22c55e,color:#fff\n    style Config fill:#5b21b6,stroke:#7c3aed,color:#fff\n    style DistConfig fill:#5b21b6,stroke:#7c3aed,color:#fff\n    style Manifests fill:#5b21b6,stroke:#7c3aed,color:#fff\n```\n\n```bash\n# 1. Initialize a new project with your preferred stack\nksail cluster init \\\n  --name \u003ccluster-name\u003e \\\n  --distribution \u003cVanilla|K3s|Talos|VCluster\u003e \\\n  --cni \u003cDefault|Cilium|Calico\u003e \\\n  --csi \u003cDefault|Enabled|Disabled\u003e \\\n  --metrics-server \u003cDefault|Enabled|Disabled\u003e \\\n  --cert-manager \u003cEnabled|Disabled\u003e \\\n  --policy-engine \u003cNone|Kyverno|Gatekeeper\u003e \\\n  --gitops-engine \u003cNone|Flux|ArgoCD\u003e \\\n  --mirror-registry \u003chost\u003e=\u003cupstream\u003e\n\n# 2. Create and start the cluster\nksail cluster create\n\n# 3. Add your manifests to the k8s/ directory\n\n# 4. Deploy your workloads\nksail workload apply -k ./k8s   # kubectl workflow\nksail workload reconcile        # gitops workflow\n\n# 5. Update cluster configuration (modify ksail.yaml, then run)\nksail cluster update            # Apply configuration changes\n\n# 6. Connect to the cluster with K9s\nksail cluster connect\n```\n\n### Native Configuration Files\n\nKSail generates standard distribution configuration files that you can use directly with the underlying tools:\n\n```bash\n# After ksail cluster init, you'll find native configs:\n# - kind.yaml       (for Vanilla/Kind clusters)\n# - k3d.yaml        (for K3s clusters)\n# - talos/          (for Talos clusters)\n# - vcluster.yaml   (for VCluster clusters)\n\n# You can use these configs directly without KSail:\nkind create cluster --config kind.yaml\nk3d cluster create --config k3d.yaml\ntalosctl cluster create --config-patch @talos/cluster/patches.yaml\nvcluster create my-cluster --values vcluster.yaml\n\n# Or let KSail manage the lifecycle:\nksail cluster create\n```\n\n## Documentation\n\nBrowse the documentation at \u003chttps://ksail.devantler.tech\u003e (GitHub Pages)\n\n## Community \u0026 Support\n\n- 💬 **[GitHub Discussions](https://github.com/devantler-tech/ksail/discussions)** — Ask questions, share ideas, and connect with other users\n- 🐛 **[Issue Tracker](https://github.com/devantler-tech/ksail/issues)** — Report bugs or request features\n- 📖 **[Documentation](https://ksail.devantler.tech)** — Guides, CLI reference, and architecture docs\n- ⭐ **[Star the repo](https://github.com/devantler-tech/ksail)** — Help others discover KSail\n\n## Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our development process, coding standards, and how to submit pull requests.\n\nLooking for a place to start? Check out issues labeled [`good first issue`](https://github.com/devantler-tech/ksail/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).\n\n## Related Projects\n\nKSail is a powerful tool that can be used in many different ways. Here are some projects that use KSail in their setup:\n\n| Project                                                               | Description         | Type     |\n|-----------------------------------------------------------------------|---------------------|----------|\n| [devantler-tech/platform](https://github.com/devantler-tech/platform) | My personal homelab | Platform |\n\nIf 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.\n\n## Presentations\n\n- **[KSail - a Kubernetes SDK for local GitOps development and CI](https://youtu.be/Q-Hfn_-B7p8?si=2Uec_kld--fNw3gm)** - A presentation on KSail at KCD2024 (Early version of KSail that was built in .NET).\n\n## Blog Posts\n\n- [Local Kubernetes Development with KSail and Kind](https://devantler.tech/blog/local-kubernetes-development-with-ksail-and-kind/)\n- [Local Kubernetes Development with KSail and K3d](https://devantler.tech/blog/local-kubernetes-development-with-ksail-and-k3d/)\n- [Local Kubernetes Development with KSail and Talos](https://devantler.tech/blog/local-kubernetes-development-with-ksail-and-talos/)\n- [Creating Kubernetes Clusters on Hetzner with KSail and Talos](https://devantler.tech/blog/creating-development-kubernetes-clusters-on-hetzner-with-ksail-and-talos/)\n- [AI-first TUI for KSail with Copilot SDK and Bubbletea](https://devantler.tech/blog/building-an-ai-assistant-for-kubernetes-with-github-copilot-sdk/)\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/#devantler-tech/ksail\u0026type=timeline\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=devantler-tech/ksail\u0026type=timeline\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=devantler-tech/ksail\u0026type=timeline\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=devantler-tech/ksail\u0026type=timeline\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/devantler"],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevantler-tech%2Fksail","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevantler-tech%2Fksail","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevantler-tech%2Fksail/lists"}