https://github.com/muspelheim/microk8s-gitops
Home Cloud via Flux v2 | GitOps Toolkit. Leverage Flux2 to automate cluster state using code residing in this repo.
https://github.com/muspelheim/microk8s-gitops
flux2 gitops helm helm-chart home-assistant kubernetes smarthome
Last synced: 3 days ago
JSON representation
Home Cloud via Flux v2 | GitOps Toolkit. Leverage Flux2 to automate cluster state using code residing in this repo.
- Host: GitHub
- URL: https://github.com/muspelheim/microk8s-gitops
- Owner: muspelheim
- Created: 2021-12-09T02:20:47.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-11-27T16:56:29.000Z (about 2 months ago)
- Last Synced: 2025-11-28T07:09:27.833Z (about 2 months ago)
- Topics: flux2, gitops, helm, helm-chart, home-assistant, kubernetes, smarthome
- Homepage:
- Size: 836 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

## microk8s-gitops - Home Cloud via Flux v2 | GitOps Toolkit
> GitOps state for my home lab cluster using [flux2](https://github.com/fluxcd/flux2)
[](https://github.com/pre-commit/pre-commit)
[](https://github.com/angelnu/k8s-gitop/workflows/renovate-annotations-schedule/actions)
[](https://github.com/angelnu/k8s-gitop/workflows/flux-update-schedule/actions)
Leverage Flux2 to automate cluster state using code residing in this repo.
---
## :open_file_folder: 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
```
---
## :gear: 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.
---
## :wrench: Tools
Below are some of the tools I find useful
| Tool | Purpose |
|--------------------------------------------------------|-------------------------------------------------------|
| [sops](https://github.com/mozilla/sops) | Simple and flexible tool for managing secrets |
| [pre-commit](https://github.com/pre-commit/pre-commit) | Ensure the YAML and shell script in my repo are consistent |
| [task](https://taskfile.dev/) | Task is a task runner / build tool| |
---
## :handshake: Thanks!
A lot of inspiration for my cluster came from the people that have shared their clusters over at [awesome-home-kubernetes](https://github.com/k8s-at-home/awesome-home-kubernetes)
---