geerlingguy / geerlingguy/mini-rack

GitOps Pi Cluster: Talos K8s & UniFi

Open
#323 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
3.9k
Forks
102
PR merge metrics
No merged PRs in 30d

Description

# GitOps Pi Cluster: Talos K8s & UniFi
This started as a way to teach myself Kubernetes and a proper DevOps workflow. But as the pile of Pis and networking gear kept growing, and with the space constraints of a student apartment, I had to find a neat way to house it all. The 10" form factor was the perfect solution. So here is my Mini-Rack:
| | |
|--------|--------|
| Image | Image |

## The rack

A **Tecmojo 10" 9U**, with the logo covered over with vinyl for a cleaner look (idea borrowed from [u/traviss8 on r/minilab](https://www.reddit.com/r/minilab/comments/1tzhg7l)).

## Equipment

**Compute**
- Intel NUC (7th gen): Proxmox (Talos CP and other VMs, LXC)
- 3× Raspberry Pi 4: Talos workers
- 2× Raspberry Pi 3: out-of-band Tailscale, so I can still get in to recover if the cluster dies

**Network (UniFi)**
- UCG-Ultra: Router, UniFi controller
- USW Flex 2.5G 8 PoE: Core switch, fed by the 210 W PSU, powers the USW Ultra
- USW Ultra: cluster switch, powers the Pis
- Keystone patch panel

**Power & cooling**
- Digitus 1U PDU
- 2× Noctua 80 mm fans on a rear 2U panel, pulling air across the Pi cluster
- Waveshare PoE HAT (E) for the Pis

## What it runs

The cluster is all GitOps and the underlying infra is Terraform: Full architecture and config are in my [repo](https://github.com/FinnPL/Homelab-Setup).

The short version: Talos Linux + Cilium, ArgoCD, CloudNativePG, a Prometheus/Grafana/Loki stack, and Authentik SSO and more to come.

## 3D-printed parts

All 10" rack mounts from MakerWorld printed in ASA:

- [USW Flex 2.5G 8 PoE mount](https://makerworld.com/en/models/1024496-usw-flex-2-5g-8-poe-10-inch-rack-mount)
- [USW Ultra mount](https://makerworld.com/en/models/773130-unifi-usw-ultra-10-inch-rack-mount)
- [USW Ultra 210 W PSU mount](https://makerworld.com/en/models/1295688-unifi-usw-ultra-210w-power-supply-10-rack-mount)
- [UCG-Max 1U mount](https://makerworld.com/en/models/1175026-10in-mini-rack-ucg-max-1u-mount) (fits the UCG-Ultra)
- [8-bay Raspberry Pi cluster snap-in system](https://makerworld.com/en/models/2314737-rack-snap-in-system-8-bay-raspberry-pi-cluster)
- [2U Intel NUC mount](https://makerworld.com/en/models/2437633-10-inch-server-rack-2u-intel-nuc-6cay)
- [2U 80 mm fan blank panel (bridged remix)](https://makerworld.com/en/models/2062371-10-inch-2u-80mm-fan-blank-panel-bridged-remix)
- [Keystone patch panel](https://makerworld.com/en/models/2875409-10-inch-rack-patch-panel-keystone-bonanza)
- [USB labels for the Pis](https://makerworld.com/en/models/2408572-usb-label)

## What's next

- **JetKVM (PoE version)** still trying to get hold of one. It'll fit nicely next to the NUC.
- **Spare 1U -> NTP?** Leaning toward a GPS-disciplined oscillator for a NTP server with holdover. Inspired by [DIY Atomic Clock mini rack (#315)](https://github.com/geerlingguy/mini-rack/issues/315).

Contributor guide

No contributing guide indexed for this repository

Research direction

This issue is a showcase of a GitOps Pi cluster and mini-rack rather than a defined change. It names no repository files, tests, or entry points, and does not specify an implementation task or acceptance criteria. Clarify the intended documentation contribution with the maintainer before starting; completion cannot be determined from the issue alone.

Written by the indexing model from the issue text.

Assessment

Tech stack
grafana, kubernetes, prometheus, raspberry-pi, terraform
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.