This is a mono repository for my home Kubernetes cluster. Flux watches the cluster directory and makes changes to the cluster based on the YAML manifests.
- Talos: Using bare talosctl
- fluxcd: Sync kubernetes cluster with this repository.
- SOPS: Encrypts secrets which is safe to store - even to a public repository.
- go-task: Custom helper commands
- flannel: Container Network Interface for networking between pods.
- metallb: Bare-metal load balancer.
- cert-manager: Configured to create TLS certs for all ingress services automatically using LetsEncrypt.
- ingress-nginx: Ingress controller for services.
- external-dns: External DNS manager for all ingress.
- rook-ceph: Cloud native distributed block storage for Kubernetes
- kube-prometheus-stack: Scraping metrics from the entire cluster
- grafana: Visualization for the metrics from Prometheus and other datasources
- external-secrets: Integrates external secrets management with OnePassword Connect
- local-path-provisioner - Provision persistent local storage with Kubernetes to avoid write amplification for default soft replicated applications
The Git repository contains the following directories under kubernetes and are ordered below by how Flux will apply them.
π kubernetes # Kubernetes cluster defined as code
ββπ bootstrap # Flux installation
ββπ flux # Main Flux configuration of repository
ββπ core # Core applications deployed into the cluster grouped by namespace
ββπ apps # Apps deployed after core into the cluster grouped by namespace
π archive # Archived Kubernetes application manifests