Skip to main content

Introduction

Welcome to the Kubernetes Playground Cluster - a production-ready GitOps Kubernetes cluster management system using ArgoCD, Helm, and Flux.

What Is This?

This repository contains the complete infrastructure-as-code for a self-managed Kubernetes cluster. It follows GitOps principles where all cluster configurations are stored in Git and automatically synchronized to the cluster by ArgoCD.

What Can You Do With This?

  • Deploy applications using Git-based workflows
  • Manage multiple environments (dev, qa, prod) with isolated configurations
  • Auto-manage DNS records via External-DNS
  • Auto-provision TLS certificates via cert-manager
  • Load balance services on bare-metal via MetalLB
  • Route HTTP traffic via NGINX Ingress

Tech Stack

ComponentPurposeVersion
KubernetesContainer orchestration1.33+
ArgoCDGitOps continuous deliveryLatest
HelmPackage management3.x
MetalLBLoad balancer (bare-metal)Latest
NGINX IngressHTTP routingLatest
cert-managerTLS certificatesLatest
External-DNSDNS managementLatest
CloudflareDNS provider-

Prerequisites

  • Kubernetes cluster (kubeadm, v1.33+)
  • kubectl configured with cluster access
  • GitHub personal access token (with repo access)
  • Cloudflare account + API token (for DNS-01 challenges)

Key Features

  • GitOps Workflow: All changes go through Git, ArgoCD automatically syncs
  • Multi-environment: Dev, QA, Prod with isolated configurations
  • Automated TLS: Let's Encrypt certificates with auto-renewal
  • Auto DNS: Automatic DNS record creation via External-DNS
  • Node Provisioning: Easy commands to add new worker nodes
  • Helm-based: Reusable charts for all components