August 15th, 2024

Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world

Kardinal is a framework for creating lightweight ephemeral development environments in Kubernetes, supporting various testing flows. It requires specific tools and offers a playground for experimentation and extensive user support.

Read original articleLink Icon
Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world

Kardinal is a framework designed to facilitate the creation of lightweight ephemeral development environments within a shared Kubernetes cluster. It allows developers to create "flows," which are pathways for requests through the cluster, enabling on-demand deployment of service versions currently under development. Key features include single-service flows for testing new versions while sharing application state, multi-service flows for larger feature changes, state-isolated flows for testing database migrations, and full application flows for isolated end-to-end testing. To get started, users need to have Docker, Minikube, Kubectl, and Istio installed. Installation can be done via a simple command, and deployment of the Kardinal Manager and demo applications is straightforward. Kardinal also provides a playground in GitHub Codespaces, allowing users to experiment without installation. Comprehensive documentation, a community forum, and a blog are available to support users in effectively utilizing Kardinal.

- Kardinal enables lightweight ephemeral development environments in Kubernetes.

- It supports various flow types for testing and development, including single and multi-service flows.

- Users need specific tools installed to get started with Kardinal.

- A playground feature allows for experimentation without installation.

- Extensive documentation and community support are available for users.

Link Icon 3 comments
By @oneplane - 5 months
At first I thought this was about setting up Kubernetes clusters, but that is not what this is about at all. The cluster is just providing resources, the actual thing here is multiple environments within that cluster. So you might have your chain of services (frontends, backends, event based services) and instead of duplicating all of them you somewhat nest them blue-green style in the same cluster.

In theory you could just use ingress and a special URL to deploy a single service as a special one-off deviation, but when you want to have an entire chain of services adjusted for a separate virtual environment that no longer works (unless you duplicate all services and rewrite all dependant service URLs for example).

By @fragmede - 5 months
> Kardinal is a framework for creating extremely lightweight ephemeral development environments within a shared Kubernetes cluster.

I was expecting something like kind. This is still useful, just not what the title made me think of, though fitting everything into the title is sometimes impossible.

By @alvaromorales - 5 months
that's a bold claim, why is this any more lightweight than doing namespace-based deploys or just using telepresence for development?

like the name though