Skip to content

sfotiadis/flux-rpi-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

377 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raspberry Pi Kubernetes Cluster with Flux

Kubernetes FluxCD MetalLB cert-manager Monitoring Grafana Karma Postgres MariaDB NGINX Loki MinIO

This repository contains the GitOps configuration for my personal Raspberry Pi Kubernetes clusters (k3s), consisting of a development (dev) and a production (prod) environment. Flux continuously reconciles the cluster state with the manifests stored here, ensuring a reproducible, self-healing setup.

The clusters themselves are provisioned by using sfotiadis/ansible-rpi-cluster, which installs k3s and Cilium.

Repository Structure

.
├── clusters
│   ├── rpi-cluster-dev   # Flux Kustomizations for Dev
│   └── rpi-cluster-prod  # Flux Kustomizations for Prod
├── docs                  # Additional docs (SOPS, networking, ...)
├── helm                  # Custom or adapted Helm charts tailored for this cluster
├── infrastructure
│   ├── configs           # Cluster level config
│   ├── controllers       # Operators & controllers
│   └── observability     # Monitoring & logging
└── tenants               # Application layer 

Environments

clusters/rpi-cluster-dev and clusters/rpi-cluster-prod reference different overlay paths under infrastructure/* and tenants/*. Patches adjust replica counts and storage classes (local-path vs nfs-rwx).

Components (selected)

Category Components
Networking MetalLB, Cilium
Ingress ingress-nginx
Certificates cert-manager
Database CloudNativePG, MariaDB Operator
Object Storage MinIO
Monitoring kube-prometheus-stack, Karma
Logging Loki Stack
GitOps Flux controller metrics + GitHub alerts
Secrets/Vault OpenBao (experimental), Kratos (WIP)
Storage NFS Subdir External Provisioner (prod), Local Path Provisioner (dev)

Secrets Management

Sensitive data (e.g. certificates, passwords) is stored in this repository in encrypted form using SOPS. This allows secrets to be safely committed to Git while still enabling Flux to decrypt and apply them to the cluster.

Disclaimer

This repository is a personal homelab project running on Raspberry Pi clusters. It is not intended for production use but serves as a playground for experimenting with GitOps and Kubernetes ecosystem tooling.

About

GitOps configuration for a personal Raspberry Pi Kubernetes (k3s) cluster using Flux

Topics

Resources

License

Stars

Watchers

Forks

Contributors