This repository contains the configurations for my home operations k3s cluster.
My applications are managed in GitOps fashion with ArgoCD, Renovate, and Github webhooks. Repository push events trigger a webhook to ArgoCD, causing it to immediately sync the cluster state with this repository.
Renovate continuously scans the repository and submits pull requests for dependency updates. This includes upgrades to K3s itself via system-upgrade-controller.
Pull requests for Helm application updates trigger a workflow to calculate and post the diff between the old and new versions' inflated manifests, as well as detect and pull all new container images to the cluster for verification.
Container image update pull requests against base manifests in the repository also trigger a workflow to pull the new image. This has the added benefit of caching all images in the local embedded registry mirror, Spegel, prior to merging.
- Home Assistant and related services
- Appdaemon
- Custom automations
- Z-Wave JS UI
- EMQX Cluster
- Codeserver
- Venstar MQTT bridge
- Appdaemon
- Unifi
- Wireguard
- Adguard
- Custom exporter sidecar
- Gravity cluster
- Renovate
- Portainer
- GitOps for remote Docker hosts
- ArgoCD
- 1Password Connect
- External Secrets
- Cert-Manager
- Kube-VIP
- CloudNativePG
- EMQX Operator
- ETCD Operator
- MongoDB Community Operator
- Kube Prometheus Stack
- Kromgo
- System Upgrade Controller
- Ingress-NGINX
- Kubernetes Dashboard
- Stakater Reloader
- Velero
- Gateway API
- Netkit
- eBPF host-routing
- Native routing
- BGP control plane
- Hubble observability
- RPi 5 8gb with 512GB NVMe SSD via PCIe hat