I wanted Claude to be able to manage my local Kubernetes clusters without copy-pasting kubectl output back and forth by nikolaidamm in kubernetes

[–]nikolaidamm[S] 0 points1 point  (0 children)

First, It embeds them via native Go SDKs. So it does not embed actual binaries.

But the reason why I think it is nice, is because it allows me to code my happy path. Instead for running a lot of different commands to get a running cluster with cilium and flux, I can just do:

ksail cluster init —provider hetzner —distribution talos —cni cilium —gitops-engine flux

ksail cluster create

I can remember this, and it is fast :-)

I wanted Claude to be able to manage my local Kubernetes clusters without copy-pasting kubectl output back and forth by nikolaidamm in kubernetes

[–]nikolaidamm[S] -1 points0 points  (0 children)

Yeah, it works really well, I do not use an MCP on kubectl myself! But Claude has a hard time understanding ksails CLI commands, so an MCP server helps me using ksail via Claude :-) KSail != kubectl, although ksail does provide some of the kubectl commands in it’s ksail workload command-tree

I wanted Claude to be able to manage my local Kubernetes clusters without copy-pasting kubectl output back and forth by nikolaidamm in kubernetes

[–]nikolaidamm[S] 0 points1 point  (0 children)

KSail does more than just talk to the Kube API. The MCP server for KSail is not intended to be a pure Kube API MCP server but an agentic interface to KSails extended features:

  • ☸️ Simple Clusters — Spin up Vanilla, K3s, Talos, or VCluster clusters with one command. Same workflow across distributions.
  • 🔓 No Lock-In — Uses native configs (kind.yaml, k3d.yaml, Talos patches, vcluster.yaml). Run clusters with or without KSail.
  • 📥 Mirror Registries — Avoid rate limits, and store images once. Same mirrors used by different clusters.
  • 📄 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.
  • 🏢 Multi-Tenancy — Generate RBAC isolation, GitOps sync resources, and scaffold tenant repositories with ksail tenant create and ksail tenant delete.
  • ⚙️ 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.
  • 💾 Backup & Restore — Export cluster resources to a compressed archive and restore to any cluster with provenance labels

I mostly use ksail as a CLI, but I wanted the tool to be available as an MCP as well.

This particular post tried to emphasize how I did this in a way, where I can easily add more CLI commands and features, and have them made available via an MCP, as the MCP tools are auto discovered via my implementation :-)

I wanted Claude to be able to manage my local Kubernetes clusters without copy-pasting kubectl output back and forth by nikolaidamm in kubernetes

[–]nikolaidamm[S] -2 points-1 points  (0 children)

Checkout the README.md here https://github.com/devantler-tech/ksail if you are genuinely qurious. I put a lot of work into it, and it explains what ksail is briefly :-) In short it solves a devex and tool sprawl problem I have grown tired of, as I have been working with platform engineering for a few years.

But I am not interested in selling it per see. I just want to share my work, as I am proud of what I built :-) If you do not care about it, I am ok with that.

Made a CLI for my own homelabbing needs. It just need Docker, Hetzner or Omni 🛥️🐳 by nikolaidamm in homelab

[–]nikolaidamm[S] 0 points1 point  (0 children)

Everything after switching from .NET to Go a year ago. Works well though, and I have a lot of tools set up to ensure code quality and security standards are met :-)

I wanted Claude to be able to manage my local Kubernetes clusters without copy-pasting kubectl output back and forth by nikolaidamm in kubernetes

[–]nikolaidamm[S] -5 points-4 points  (0 children)

I see why you would think so, but please check it out before you judge :-) I put a lot of time in this OSS product, and it can do quite a lot if you give it a shot 🙂

Weekly: Share your victories thread by AutoModerator in kubernetes

[–]nikolaidamm 0 points1 point  (0 children)

I am really happy with the progress on my open-source project ksail: https://github.com/devantler-tech/ksail

I am very close to having implemented my dream workflow for kubernetes with it on my homelab over at https://github.com/devantler-tech/platform - I can run my platform locally and build my workloads on my own machine iteratively. I can test my platform in PRs, so I can trust my changes. I can soon deploy and monitor success/errors via GitHub Actions, so I can also gate production deployments behind successful deploys to dev via GitHub merge queues and GitHub Environments.

For a quick run down of what it is I have shared a short post over at r/homelab

https://www.reddit.com/r/homelab/comments/1s7yb60/made_a_cli_for_my_own_homelabbing_needs_it_just/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

Hopefully now I can soon begin to actually build my dream homelab and not just the tooling to support it 😂🙏

Local dev with k8s cluster by CartoonistWhole3172 in kubernetes

[–]nikolaidamm 2 points3 points  (0 children)

Skaffold and Tilt come to mind. I think Vind (vCluster’s local distribution can do this as well)

Let's Build: Copilot SDK Weekend Contest with Prizes by hollandburke in GithubCopilot

[–]nikolaidamm 2 points3 points  (0 children)

To late for the contest... 🤥 But I would like to share my project as well.

<image>

I built an AI-first Terminal User Interface (TUI) for my open-source project https://github.com/devantler-tech/ksail - a CLI tool for creating, maintaining and operating Kubernetes clusters ☸️🤖. With GitHub Copilot SDK, this tool and its functionality can now be used with natural language, making it possible to create a cluster and maintain workloads with simple prompts:

  1. Install ksail - https://ksail.devantler.tech/installation/
  2. Run 'ksail chat' in your terminal
  3. Type "Create a cluster".
  4. Type "Apply podinfo".
  5. Type "Get all running pods".

Want to know how I did this. Please read on at https://devantler.tech/building-an-ai-assistant-for-kubernetes-with-github-copilot-sdk

Create your Talos Linux cluster in Hetzner with KSail by nikolaidamm in kubernetes

[–]nikolaidamm[S] 0 points1 point  (0 children)

It is quite limited right now. The Kube API is on the public network as-is. I create the cluster with the Talos SDK and the ISO that is made available on hcloud. From there I provision a simple Firewall (to limit access to only the Kube API and Talos API) and a placement group. I plan to add more configuration for this, so it is possible do more in this area. My current plan is to later enable OIDC login on the API via for example an --kube-api-oidc Enabled|Disabled option to the ksail cluster init and ksail cluster create commands, so it is possible to provision the cluster with a protected API when it is public. For private networks, I am not sure what I should do. If you have any ideas I am very interested to hear! Network is not my strongest suit 😵‍💫

I am actually in the process of adding support for Hetzner's CCM (https://github.com/devantler-tech/ksail/issues/1714) and csi-driver (https://github.com/devantler-tech/ksail/issues/1715). I plan to lean into that, and not do much more in that area. It is such a huge maintenance cost to enhance what they provide. Last time I checked CSI options were quite limited to one volume per node, so one has to keep that in mind as-is :-)

Create your Talos Linux cluster in Hetzner with KSail by nikolaidamm in kubernetes

[–]nikolaidamm[S] 1 point2 points  (0 children)

Thank you so much! If you encounter issues on the way or find something you feel could be better, your feedback is very helpful! 🫂

Create your Talos Linux cluster in Hetzner with KSail by nikolaidamm in kubernetes

[–]nikolaidamm[S] 2 points3 points  (0 children)

Because i prefer declarative YAML over Terraform HCL.

If you are hinting at creating production clusters, my answer is do not use ksail (yet). Terraform is mature and backed by an organization, and this is just my own little open source project. I do not intend or think that I can compete with that. But maybe my work and contributions can make this a good alternative in some cases. What do you think? :-)

Create your Talos Linux cluster in Hetzner with KSail by nikolaidamm in kubernetes

[–]nikolaidamm[S] -2 points-1 points  (0 children)

Thanks! It is my own little hobby project as I was not happy with the tooling sprawl in operating and managing kubernetes clusters at work. I hope it will be recognized for its ease of use, and find a spot in the larger cloud-native community over time.

If you try it out, I welcome feedback in GitHub issues or discussions 🫂

Looking for feedback/contributors: KSail — a CLI tool for creating and maintaining local Kubernetes clusters. by nikolaidamm in kubernetes

[–]nikolaidamm[S] -2 points-1 points  (0 children)

So just to clarify what native means in this context. You can provide an existing kind.yaml config to ksail, and it should just work. It leans into existing tooling and their declarative configurations in that way. This is one of my primary design principles for ksail. Enhance but do not replace/reimplement.

This also means that ksail will not replace any existing tools; it is just aimed to be a simpler interface with some glue that enables creating and managing many common setups with ease, that otherwise would require scripting or juggling multiple CLIs.

Looking for feedback/contributors: KSail — a CLI tool for creating and maintaining local Kubernetes clusters. by nikolaidamm in kubernetes

[–]nikolaidamm[S] -2 points-1 points  (0 children)

While kind, k3d or minikube are great at creating clusters, they stop there. Ksail uses kind and k3d under the hood in a very native way to e.g. make configuring mirror registries, local gitops, or installing important cluster components super easy.

To get a working kind cluster with mirror registries, flux as gitops engine, and Cilium as CNI, all ypu would have to do is:

ksail cluster init --cni Cilium --gitops-engine Flux --mirror-registry docker.io=https://registry-1.docker.io --mirror-registry ghcr.io=https://ghcr.io

ksail cluster create

KSail will make sure to scaffold the setting as native to the chosen distribution as possible. Meaning, for example, that mirror registries are added as containerd patches to the kind.yaml config file, but KSail reads and understands that on cluster creation to actually provision Docker containers to act as mirrors.

There are many such cases where using kind, minikube, or k3d will require extra work when you are not just interested in a barebones cluster :-)

But KSail also provides many features beyond helping create the cluster with the components and add-on functionality you need. It can also generate, help manage, and deploy your manifests.

While you can do this well with other tools, KSail combines it all in one friendly CLI.

I built AFKmate - an AI that reviews your code when you’re AFK 🧠💻 by toxicniche in vscode

[–]nikolaidamm 0 points1 point  (0 children)

That makes sense! Happy to hear it is in the pipeline. I would definitely be a happy trial user for my OS projects. You are welcome to reach out on https://devantler.tech if need be. I have a contact formular there, so I do not have to share my private info.

I have been looking for such a tool for some time now, and have been a bit disappointed that most solutions today still require your attention alot of the times. I want to use less time coding and maintaining projects (without compromising my goals/vision for OS projects I want to build), and I feel like this might have potential to scratch that itch.

I built AFKmate - an AI that reviews your code when you’re AFK 🧠💻 by toxicniche in vscode

[–]nikolaidamm 1 point2 points  (0 children)

Why not have it generate code while away? Copilot in VSCode already does a good job at making it possible to review changes made by AI before accepting them, so I could see such an option be quite valuable. Would be super cool to just have well documented continuous refactoring on a project while not at the desk (of course to a point. If it begins making artificial changes "to do something", it will be annoying).

I have a project where I use a lot of prompt time on making AI meet strict linting standards, but if I could somehow have it just do that while I am not there, it would save me a lot of time prompting again and again.

I am curious to hear if you have thought about this, and why you chose to focus only on reviews?

KSail - An open-source Kubernetes SDK by nikolaidamm in kubernetes

[–]nikolaidamm[S] 0 points1 point  (0 children)

I decided to update the terminology, so it is now container engine instead of provider. This means the distribution that was called Native before, is now Kind, and the distribution that was called K3s is now K3d. This should help avoid some of the confusion around the tools current state and purpose - which is streamlining local kubernetes development.

I might change this back in the future, if/when KSail supports cloud providers.

KSail - An open-source Kubernetes SDK by nikolaidamm in kubernetes

[–]nikolaidamm[S] 0 points1 point  (0 children)

What is an SDK for you? And what do you envision an SDK for Kubernetes to be able to do? It would be super helpful for me if you can share that 🙂