Build your own open-source Kubernetes framework
A DevOps toolkit to control the chaos
3 min read
Swimming with the Sharks
I joined DigitalOcean in September to lead the advocacy efforts for our DigitalOcean Kubernetes offering. Advocating for an extensive platform such as Kubernetes can be quite daunting. If you don't master the art of resurfacing and finding your grip, you can easily be left stranded in a node that is present in some deepest, darkest corners of the clusters (pun intended). As an avid swimmer, I was ready to take a deep dive (ok, no stupid puns, I promise).
Kubernetes is NOT ...
Kubernetes is the answer, what was the question again? ;)
Kubernetes is not a panacea for all your miseries. It is not production-ready and it is not an all-inclusive PaaS platform. It is not an endgame but a better place to start. Now, that we have that sorted. Let's get back to my job, shall we?
As a Developer Advocate, I had to build Kubernetes use cases to demonstrate to our customers and users to help them in their Kubernetes adoption journey.
Addressing the Elephant in the room
What is a production-ready Kubernetes stack?
I have this infographic by pionative at all times. I use it as a reminder to resurface back to catch a breath of fresh air.
Colorful and fancy? but also complex and painful (cries inside). On a high level, this is what it takes to set up a production-ready, day-2 operations-ready Kubernetes tech stack. Humans are intelligent and even more beautifully complicated machines. Can't they figure out how to tame the beast? Of course, they have and as always, they have come up with millions of ways to do it. That is what makes Kubernetes even more special(debatable). At this point, are you convinced to a take stab at k8s? probably not?
Trust me, we got this sorted
Control the chaos
How do you advocate for a platform used to build platforms?
- Build a framework to build a platform that can build platforms
Jokes, aside. That is exactly what I did. I put together an extendable framework hivenetes/k8s-bootstrapper that leverages Terraform and Argo CD to set up "production-ready" K8s clusters from the get-go. This project integrates battle-tested, industry-standard open-source software that enables any DevOps team to set up production-grade clusters in minutes in a true GitOps fashion. I was inspired by the fabulous work of Alex Jones from Cloud Native Skunkworks. Check them out if you haven't already.
I encourage you, folks, to check out the project on github and I am more than happy to hear your feedback. Feel free to contribute to the project as deemed fit.
The bootstrapper project uses a simple three-setup process to get to Day-2 operations.
- Set up cloud infrastructure using Terraform
- Install Argo CD
- Leverage Argo's cluster-bootstrapping pattern to set up and configure other OSS tools
Isn't that simple and easy? This is why I love being in tech.
So the bootstrapper solves all the mysteries of K8s?
- NO!!!. We are one step closer to attaining nirvana. New problems will arise and we will tackle them as they come.
What's next for the bootstrapper project?
What started as a personal toolkit is now gaining traction both within the org and also in the open-source world. I had the privilege to demonstrate the project to peers in the cloud native realm at KubeCon.
- Incorporate my learnings from KubeCon NA 2022 to automate this further
- Incorporate Multi-tenancy and Auth using the techniques demonstrated by Alex Matyushentsev
- Collaborating with Jared and Daniel from Kubefirst
- Collaborate with the Developer Advocates from the OSS projects that the bootstrapper uses to build industry-standard Kubernetes use cases
Presenting it to Daniel and Nicholas from Akuity, the maintainers of the Argo project.
Stay tuned as we are just getting started!
Did you find this article valuable?
Support Abhimanyu Chitra Selvan by becoming a sponsor. Any amount is appreciated!