Go: Helm, Kubernetes & Docker Desktop
I wanted to really understand the flow of Go code to production at my work. I looked at all the IaC code they had in place and was overwhelmed — so many tools involved, so much configuration. So I did the code monkey thing, and went off to a dark corner and implemented the bare minimum myself to learn.
This is a long post, but stick with it, look in the associated repository, and you’ll be able to create a program and deploy it into a Kubernetes cluster all on your own machine — not too shabby.
The Plan
The overall lesson plan here is to achieve, all on a single Mac:
- Write a simple Go program
- Get it into a docker container
- Use Helm to get the container into Kubernetes
Additional specific goals for each of the above will be covered as we go.
Prerequisites
We’ll need a bunch of tools, and recent versions of all of them should work, but I grabbed:
- Docker Desktop 2.3.0.5
- golang 1.15.1
- helm 3.3.3
- kubectl 1.19.2
- kubectx 0.9.1