/k8s-bootstrapper

Bootstrapping a Production-Ready DigitalOcean Kubernetes Cluster Using Terraform and Argo CD

Primary LanguageHCLMIT LicenseMIT

Kubernetes Bootstrapper: An Extendable Framework to Set Up Production-Grade Clusters

Introduction

"Production-grade" is a loaded term. What constitutes production readiness will vary according to your use case. While a Kubernetes cluster is production-ready the moment it is ready to serve traffic, there is a commonly agreed set of minimum requirements, as shown in the infographic below.

k8s-prod

With many cloud-native solutions popping up daily, it can be pretty daunting for engineers and organizations to choose the "right" tools to build their tech. Integrating them to get to day-2 operations ready in Kubernetes becomes all the more challenging.

Kubernetes Bootstrapper

The k8s-bootstrapper project is a customizable and extendable framework that aims to solve this problem by leveraging

  • Terraform: Compose a production-ready infrastructure on DigitalOcean
  • Argo CD: Application configuration management and delivery using GitOps

This project integrates popular battle-tested open-source software and solutions that provide a production-grade out-of-box Kubernetes experience.

 Target Audience

  • Kubernetes adopters
  • Startups/SMBs who are looking to speed up the Kubernetes adoption
  • Builders and curious souls

k8s-bootstrapper


 Overview

.
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md 
├── argocd # Argo CD configurations (optional)
├── bootstrap # cluster bootstrapping using Argo CD
├── docs # documents and assets
├── infrastructure # infrastructure automation using Terraform
└── observability # set up observability stack 

 Bootstrap the Kubernetes Cluster

Follow the guide in the order stated below:

  1. DigitalOcean Infrastructure Automation via Terraform
  2. Bootstrapping using Argo CD
  3. Set up Observability using Robusta

Here is the overview of the architecture that we will set up:

boot-overview

 Note: Intended for experimentation/evaluation only. You will be responsible for all infrastructure costs incurred by the used resources.

 Tear down the Bootstrapped Cluster

Had fun trying out the k8s-bootstrapper? Time to say goodbye!

# Run
cd infrastructure/terraform
terraform destroy --var-file=bootstrapper.tfvars --auto-approve
# Bye Bye!

Demos

k8s-bootstrapper in action

 Media

 Shout-out

This project takes inspiration from the fantastic work done by Alex Jones of Cloud Native Skunkworks.