Welcome to my home Kubernetes cluster. This repo is my Kubernetes cluster in a declarative state. Flux and Helm Operator watch my deployments folder and makes the changes to my cluster based on the yaml manifests.
You'll find this is setup for home automation using Home Assistant and media automation using Sonarr, Radarr and Plex. I also use Gitea and Drone for development automation too. It would take too long to describe all the technologies running so poke around my deployments directory to see what's happening.
Feel free to open a Github issue or join our Discord if you have any questions.
Below are some of the tools I find useful for working with my cluster
Tool | Purpose |
---|---|
direnv | Set KUBECONFIG environment variable based on present working directory |
git-crypt | Encrypt certain files in my repository that can only be decrypted with a key on my computers |
go-task | Replacement for make and makefiles, who honestly likes that? |
pre-commit | Ensure the YAML and shell script in my repo are consistent |
kubetail | Tail logs in Kubernetes, also check out stern (which fork? good luck) |
All my Kubernetes master and worker nodes below are running bare metal Ubuntu 20.04.x
Device | Count | OS Disk Size | Data Disk Size | Ram | Purpose |
---|---|---|---|---|---|
Odroid H2 | 1 | 256GB NVMe | N/A | 16GB | k8s Master |
Intel NUC8i5BEH | 3 | 120GB SSD | 1TB NVMe (longhorn) | 32GB | k8s Workers |
Intel NUC8i7BEH | 2 | 750GB SSD | 1TB NVMe (longhorn) | 64GB | k8s Workers |
Qnap NAS (rocinante) | 1 | N/A | 8x12TB RAID6 | 16GB | Media and shared file storage |
Synology NAS (serenity) | 1 | N/A | 8x12TB RAID6 | 4GB | Media and shared file storage |
Raspberry Pi 4 | 1 | 64GB | N/A | 8 GB | Wireguard VPN & General Purpose Device |
This table is a reference to IP addresses in my deployments and may not be fully up-to-date
Deployment | Address |
---|---|
nginx-ingress (external) | 192.168.69.100 |
nginx-ingress (internal) | 192.168.69.101 |
home-assistant | 192.168.69.105 |
influxdb | 192.168.69.109 |
vernemq | 192.168.69.110 |
blocky | 192.168.69.115 |
gitea | 192.168.69.125 |
qbittorrent | 192.168.69.130 |
plex | 192.168.69.140 |
loki-syslog | 192.168.69.155 |
coredns | 192.168.69.180 |
A lot of inspiration for this repo came from the following people: