Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
1–10 of 11 posts
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#2like the name though
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#3I 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.
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#4In 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).
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#5that'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
in reality what you're doing with namespace-based deploys or telepresence is equally "lightweight" to what you're doing with Kardinal. it's just that (at least in our phrasing), those don't quite constitute a separate "environment" as state is shared between any developers working at the same time
Kardinal matches those approaches in terms of light-weightedness, but offers state isolation guarantees too (like isolation for your dbs, queues, caches, managed services, etc). so in comparison to "ephemeral environment" approaches that give state isolation, we do believe we're doing this in the most lightweight way possible by implementing that isolation at the layer of the network request rather than by duplicating deployed resources
and thanks for the +1 on the name haha, we called it Kardinal because the goal is to deploy only "unique elements of your ephemeral environments" across the organization, i.e. number of services deployed equals the "cardinality" of service versions
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#6> 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.
environment is an incredibly overused word for devs. development environment might even mean IntelliJ, not a k8s cluster with your dev versions inside of it
been going back and forth a lot on how to make this more clear without introducing additional confusion
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#7that'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
founder/developer on Kardinal here - that's a good question in reality what you're doing with namespace-based deploys or telepresence is equally "lightweight" to what you're doing with Kardinal. it's just that (at least in our phrasing), those don't quite constitute a separate "environment" as state is shared between any developers working at the same time Kardinal matches those approaches in terms of light-weightedn…
How do you handle requests going from service A to B and then to database C vs A2 -> B -> C2?. How does service B know to route to a different database based on the version of A thats different?
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#8Earlier quoted context omitted.
founder/developer on Kardinal here - that's a good question in reality what you're doing with namespace-based deploys or telepresence is equally "lightweight" to what you're doing with Kardinal. it's just that (at least in our phrasing), those don't quite constitute a separate "environment" as state is shared between any developers working at the same time Kardinal matches those approaches in terms of light-weightedn…
I don't think thats what they meant by namespaced deploys. I think they meant an entire copy of the environemnt contained in separate namespaces. How do you handle requests going from service A to B and then to database C vs A2 -> B -> C2?. How does service B know to route to a different database based on the version of A thats different?
we use trace headers to keep track of where the request originally came from to route it to the right database. it's transparent to service B as long as service B is properly propagating the request context from incoming request to outgoing requests
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#9At 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 cou…
you can even use ingress and special URL for multiple services in a one-off deviation, but things get really messy when you want to test state-level things too like db migrations.
besides making it more convenient to handle the chain of dependencies and duplicating all the services, we also want to make it easier to test db/state migrations and larger features without having to do an expensive e2e application deploy
Re: Show HN: Kardinal–The lightest-weight Kubernetes dev environment in the world
#10At 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 cou…
founder/dev on this project here - exactly!! still trying to figure out the wording between "kubernetes development environment", "kubernetes-based application deploys", "application environments in-cluster", etc...i can tell it's not quite coming across clearly in the first go, but yeah you got the idea you can even use ingress and special URL for multiple services in a one-off deviation, but things get really messy…
Your project is probably going to be useful for some (who want it locally), and an inspiration for others (who want to build something similar but for their custom platform) as it can be pretty tricky in a world were we still have people doing things manually (i.e. running kubectl apply in production).