... managed with Flux, Renovate, and GitHub Actions
This repository is my home Kubernetes cluster in a declarative state. Flux watches the kubernetes folder and will make the changes to the cluster based on the YAML manifests.
The cluster runs on k3s and consists of nodes based on Rock Pi 4B single-board computers, each equipped with 1TB NVME storage. Power to the boards is supplied through ROCKPI 23W PoE HAT modules.
Although Talos Linux was initially planned as the operating system (which has official support for Rock Pi 4B), it has issues with NVME storage on this hardware platform, so k3s was chosen instead.
Core components that form the foundation of the cluster:
- cilium/cilium: Kubernetes CNI.
- jetstack/cert-manager: Creates SSL certificates for services in my Kubernetes cluster.
- kubernetes-sigs/external-dns: Automatically manages DNS records from my cluster in CloudFlare.
- rancher/system-upgrade-controller: Handles k3s upgrades automatically.
- kubereboot/kured: Kubernetes reboot daemon that performs safe automatic node reboots when needed.
For observability and monitoring of the cluster the following software is used:
- grafana/grafana: Data visualization platform.
- prometheus/alertmanager: Handles processing and sending alerts.
- pushover: Handles receiving alerts on my devices.
- VictoriaMetrics/VictoriaMetrics: Time series database, drop-in replacement for Prometheus.
- Github Actions for checking code formatting and running periodic jobs
- Renovate keeps the application charts and container images up-to-date
See LICENSE

