muspelheim / microk8s-gitops

Home Cloud via Flux v2 | GitOps Toolkit. Leverage Flux2 to automate cluster state using code residing in this repo.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

microk8s-gitops - Home Cloud via Flux v2 | GitOps Toolkit

GitOps state for my home lab cluster using flux2

pre-commit renovate update-flux
Leverage Flux2 to automate cluster state using code residing in this repo.


πŸ“‚  Repository structure

The Git repository contains the following directories under cluster and are ordered below by how Flux will apply them.

  • base directory is the entrypoint to Flux
  • crds directory contains custom resource definitions (CRDs) that need to exist globally in your cluster before anything else exists
  • core directory (depends on crds) are important infrastructure applications (grouped by namespace) that should never be pruned by Flux
  • apps directory (depends on core) is where your common applications (grouped by namespace) could be placed, Flux will prune resources here if they are not tracked by Git anymore
.
β”œβ”€β”€ cluster
β”‚   β”œβ”€β”€ apps
β”‚   β”‚   β”œβ”€β”€ default
β”‚   β”‚   β”‚   └── hajimari
β”‚   β”‚   β”œβ”€β”€ home
β”‚   β”‚   β”‚   β”œβ”€β”€ adguard-home
β”‚   β”‚   β”‚   β”œβ”€β”€ esphome
β”‚   β”‚   β”‚   β”œβ”€β”€ focalboard
β”‚   β”‚   β”‚   β”œβ”€β”€ home-assistant
β”‚   β”‚   β”‚   β”œβ”€β”€ mosquitto
β”‚   β”‚   β”‚   └── zigbee2mqtt
β”‚   β”‚   └── networking
β”‚   β”‚       β”œβ”€β”€ authelia
β”‚   β”‚       └── linkerd
β”‚   β”œβ”€β”€ base
β”‚   β”‚   └── flux-system
β”‚   β”œβ”€β”€ core
β”‚   β”‚   β”œβ”€β”€ cert-manager
β”‚   β”‚   β”œβ”€β”€ kubed
β”‚   β”‚   β”œβ”€β”€ metallb-system
β”‚   β”‚   └── namespaces
β”‚   └── crds
β”‚       └── cert-manager
β”‚       └── metallb
└── standalone
    └── adguard

βš™οΈ  Hardware

Dell Optiplex 7090 Micro as a core server with the following specs:

  • Intel Core i5-10500T
  • 32GB RAM
  • 512 NVMe SSD
  • 1TB SSD
  • Zigbee USB stick (CC2538)

x3 Raspberry Pi 3B+ as edge devices with the following specs:

  • 1GB RAM
  • 32GB SD Card

Bunch of Zigbee and BLE devices.


πŸ”§  Tools

Below are some of the tools I find useful

Tool Purpose
sops Simple and flexible tool for managing secrets
pre-commit Ensure the YAML and shell script in my repo are consistent
task Task is a task runner / build tool

🀝  Thanks!

A lot of inspiration for my cluster came from the people that have shared their clusters over at awesome-home-kubernetes


About

Home Cloud via Flux v2 | GitOps Toolkit. Leverage Flux2 to automate cluster state using code residing in this repo.