Dev setup for Keptn I
Contents
Based on my Keptn slack thread: https://keptn.slack.com/archives/CGS63H8G6/p1634057060065400
I am sharing this here with a paraphrase to the original thread and some extra info. This is so that:
- The entire thing is available publicly (Keptn slack needs signing up)
- (hopefully) Gives the original thread more context and structure with some follow up information
Problem:
Keptn local development setup can be heavy if you don’t have a computer with good specifications. This can lead to bad development experience. The information about what a good dev machine should look like is mentioned in the Keptn in a Box
tutorial
For most usecases we recommend 4 Cores, 16 Gigs of RAM and 20 Gigs of diskspace. Our tests on aws have shown that the minimum required for running Keptn-in-a-Box with the default installation bundle is a t2.medium (2 vCPU and 4 Gib of RAM) and 10 Gigabytes of disk space. Nevertheless this won’t leave much space for spinning other services or onboarding applications.
For the 😎 ultimate experience you could get a t2.2xlarge with 8 Cores, 32 Gigs of RAM and 20 Gigs of diskspace.
Please note that the above is not necessarily a tutorial for dev setup but more of a ‘if you want to run Keptn with Dynatrace’ tutorial but it kind of gives us an idea of how much resources we might need to run Keptn.
I tried running Keptn in my local k3d cluster but my Lenovo IdeaPad 510 couldn’t handle running a Keptn cluster, my IDE (VSCode) and a web browser (Firefox) at the same time. My laptop would just freeze. So, I started a thread on the Keptn slack to ask about what others were using for their dev setup.
Does anyone here run Kubernetes cluster in a cloud VM (GCP,AKS,AWS) VM for local development? What do you guys use for local development and how’s the experience (can you mention the RAM/CPU of your machine if possible)? I am looking for cheaper options to run a Kubernetes cluster for local development. My personal machine is old (~8GB RAM, extendable to 12GB max).
- Buy a new machine with more RAM (~16GB or more)
pros: fast development (can use local docker registry), easy setup
cons: non-scalable (unless I add new machines)- Run a K8s cluster offered as a service by the above cloud providers (GKE, EKS)
pros: quick, easy and scalable,
cons: high operating cost, can’t use local registry- Buy a CPU tower (i.e, a big fat desktop CPU) to setup a local K8s cluster
pros: fast development, better performance (than laptop), low operating cost
cons: high initial cost, setup, non-portable- Try setting up a K8s cluster in a cloud VM (spot/preemptible instance to further reduce the cost)
pros: cheaper (than K8s as service), scalable
cons: security, setup, can’t use local registry4 is the one I am leaning towards the most right now but I would like to hear what you folks are doing as well.
Summarizing the responses from the thread:
- If you are considering Raspberry Pi as an option but turns out, Keptn doesn’t play well with ARM based processors yet
- Managed K8s (AKS) can be an option. It costs around 500INR (~6.72USD or ~5.92Euros) per month if you run it only when you want to use it.
- If you are buying a CPU Tower, 16 GB memory is recommended (32 is better) and an Intel or AMD processor with 4 cores + Hyperthreading (should be advertised as 8 cors) would be good
- If you are buying a Laptop, Keptn works fine on Asus Vivobook S510 UQ (32 GB memory, 8 core CPU)
Check out part II of this blog post when it comes out. What’s included in part II:
- Considering each option listed above in more detail
- What I eventually ended up with Hopefully 1 and 2 can give you some idea about what you can do for your local Keptn dev setup.
P.S.: Read Part II here.