ksail

[!NOTE] A larger restructuring is on the way, where all embedded binaries are extracted into their own .NET project. This makes it much easier for me to maintain. However this also means that KSail will not see bug fixes and feature releases before late this year, as the changes are expected to take a few months to get right. Follow the progress on:

ksail

πŸ›₯️🐳 KSail

License Test codecov

image

Show/hide folder structure ``` . β”œβ”€β”€ .github β”‚Β Β  └── workflows β”œβ”€β”€ .vscode β”œβ”€β”€ docs β”‚Β Β  └── images β”œβ”€β”€ scripts β”œβ”€β”€ src β”‚Β Β  └── KSail β”‚Β Β  β”œβ”€β”€ Arguments β”‚Β Β  β”œβ”€β”€ CLIWrappers β”‚Β Β  β”œβ”€β”€ Commands β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Check β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Debug β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Down β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Handlers β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Options β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Init β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Generators β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Lint β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ List β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Root β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ SOPS β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Handlers β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Options β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Start β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Stop β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Handlers β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Up β”‚Β Β  β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Handlers β”‚Β Β  β”‚Β Β  β”‚Β Β  └── Options β”‚Β Β  β”‚Β Β  └── Update β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Handlers β”‚Β Β  β”‚Β Β  └── Options β”‚Β Β  β”œβ”€β”€ Enums β”‚Β Β  β”œβ”€β”€ Extensions β”‚Β Β  β”œβ”€β”€ Models β”‚Β Β  β”‚Β Β  β”œβ”€β”€ K3d β”‚Β Β  β”‚Β Β  β”œβ”€β”€ KSail β”‚Β Β  β”‚Β Β  β”œβ”€β”€ Kubernetes β”‚Β Β  β”‚Β Β  β”‚Β Β  └── FluxKustomization β”‚Β Β  β”‚Β Β  └── SOPS β”‚Β Β  β”œβ”€β”€ Options β”‚Β Β  β”œβ”€β”€ Provisioners β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ContainerEngine β”‚Β Β  β”‚Β Β  β”œβ”€β”€ ContainerOrchestrator β”‚Β Β  β”‚Β Β  β”œβ”€β”€ GitOps β”‚Β Β  β”‚Β Β  β”œβ”€β”€ KubernetesDistribution β”‚Β Β  β”‚Β Β  └── SecretManager β”‚Β Β  └── assets β”‚Β Β  β”œβ”€β”€ binaries β”‚Β Β  └── templates β”‚Β Β  β”œβ”€β”€ k3d β”‚Β Β  β”œβ”€β”€ kubernetes β”‚Β Β  └── sops └── tests └── KSail.Tests.Integration β”œβ”€β”€ Commands β”‚Β Β  β”œβ”€β”€ Check β”‚Β Β  β”œβ”€β”€ Debug β”‚Β Β  β”œβ”€β”€ Down β”‚Β Β  β”œβ”€β”€ Lint β”‚Β Β  β”œβ”€β”€ List β”‚Β Β  β”œβ”€β”€ Root β”‚Β Β  β”œβ”€β”€ SOPS β”‚Β Β  β”œβ”€β”€ Up β”‚Β Β  └── Update └── TestUtils 74 directories ```

Getting Started

Prerequisites

[!NOTE] On MacOS (darwin) you need to β€œAllow the default Docker socket to be used (requires password)” in Docker Desktop settings.

Show me how! ![Enable Docker Socket in Docker Desktop](/ksail/docs/images/enable-docker-socket-in-docker-desktop.png)

KSail supports MacOS and Linux on the following platforms:

If you are using Windows, you can use WSL2 to run KSail.

Installation

With Homebrew:

brew tap devantler/formulas
brew install ksail

Manually:

  1. Download the latest release from the releases page.
  2. Make the binary executable: chmod +x ksail.
  3. Move the binary to a directory in your $PATH: mv ksail /usr/local/bin/ksail.

Usage

Getting started with KSail is easy. Here are a few commands to get you started:

ksail init <name-of-cluster> - To initialize your cluster.

ksail up <name-of-cluster> - To provision your cluster.

From there, you can make some changes to your manifest files, and when you are ready to apply them, you can run:

ksail update <name-of-cluster> - To update your cluster.

At some point, you might encounter an issue, and wonder what is going on. In that case, you can run:

ksail check - To check the status of your cluster reconciliations.

And for more advanced debugging, you can run:

ksail debug - To debug your cluster with the K9s tool.

Finally, when you are done working with your cluster, you can run:

ksail stop <name-of-cluster> - To stop your cluster, so you can continue working on it later.

Or if you really want to get rid of it for now, you can run:

ksail down <name-of-cluster> - To dismantle your cluster and remove its resources.

Documentation

[!NOTE] The documentation is a work in progress. When it is more mature, it will be made available on . For now it includes the information that was originally available in this README with a few additions.

Star History

Star History Chart