/microk8s-gitops

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

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