Skip to content

GitOps principles to define k3s home cluster state via code

Notifications You must be signed in to change notification settings

Stackclash/home-cluster

Repository files navigation

My Home Kubernetes Cluster


Discord k3s GitHub last commit


🔭  Overview

This repo is my home Kubernetes cluster declared using yaml files. The Kubernetes flavor I use is k3s to keep the size to a minimum. I use Flux to watch this repo and deploy any changes I push here. See below for hardware, repo structure, and setup.

💻  Hardware

Previously my cluster was made up of 5 Raspberry Pi boards. I've moved to 7 Dell Wyse 5020 (Dx0Q), all of them using the Fedora 36 Server OS. For storage one of my nodes has a 2TB external hard drive attached and is running a NFS server. Persistent volumes are provisioned using nfs-subdir-provisioner.

🏗️  Repo Details

Folder Structure

The following are the main folders of the repositories.

  • cluster: Contains all the yamls for the cluster applications and setup.
  • provision:
    • ansible: Playbooks to install k3s on the nodes and setup the cluster
    • terraform: Declarations to setup the dns primary dns record to expose the cluster services.

👏  Thanks

I've used the following repos as inspiration and guidelines for this repo.

A special thanks goes to onedr0p for his flux cluster template. I recently reorganized my repo to closely follow his template.