Go to file
2021-11-23 11:55:20 +01:00
3d-sketch . 2021-09-30 12:07:22 +02:00
doc . 2021-11-18 13:59:40 +01:00
image-lists . 2021-09-26 15:05:08 +02:00
salt Merge branch 'kvm-rancher' 2021-11-23 11:55:20 +01:00
tlumon . 2021-11-06 10:11:32 +01:00
.gitignore . 2021-11-06 11:52:26 +01:00
README.md . 2021-11-06 09:24:12 +00:00
update.sh . 2021-11-23 11:50:34 +01:00

I've always had a bunch of hardware at home to play with and test new software and products on, but that has over the years developed into a tier-1 production system (according to my family) and the ability to tear it down and/or reconfigure it has diminished. So to keep the peace at home I decided to build a new and dedicated setup for my home lab. I had some goals for the build:

  • Completely isolated, I wanted to be able to test PXE, DHCP and other network technologies that potentially would collide with my home network.
  • Portable. Due to lack of space, I needed to be able to easily remove the home lab and stow it away in the storage room when it's not in use.
  • I wanted both x86_64 and aarch64 architecture.
  • Lastly, I wanted it to be affordable to build.

The result, a complete lab environment contained in a hard case

tlu_closed

tlu_open

Everything is contained in a hard case with a stripped monitor in the case lid. All I need is to hook up the case to the power main and it's good to go. The case is divided with a plywood board and some components are mounted/hidden beneath, such as 8-port Network switch, USB-charger to power the Raspberry Pi's and all the power supplies. On top of the board you can see the following components:

tlu_callouts

  1. C14 power connector
  2. Admin server: ASUS PN50 (8-core, 16GB RAM, 512GB NVMe, 1TB SSD)
  3. USB GbE to be used to attache to external networks
  4. HDMI connector for the monitor in the lid
  5. Power connector for the monitor
  6. Ethernet connector to the switch under the plywood
  7. 4-port KVM
  8. Small box to store USB thumb drives, HDMI->HDMI-mini dongle, etc.
  9. Switch to power on/off the USB charger beneath the plywood
  10. 3 RPi4 8GB
  11. 3 ASUS PN50 (8-core, 16GB RAM, 512GB NVMe)

Admin server

The Admin server is running openSUSE Leap 15.3 and is hosting all network services (dhcp, ntp, dns, etc) for the internal networks. It also runst hostapd and uses the Asus PN50 wireless as access point to the internal network so I can connect with wifi from my laptop or I can connect the external NIC to a network and get a DHCP address and connect with ssh. Everything is configured with a script and salt, so reinstalling the Admin server is done in a ease

Three Asus PN50

They will be running Harvester as default, the default harvester cluster is installed using PXE on the Admin server and the configuration is done in the Admin server setup script. This makes it makes it easy to tear down and rebuild when I need to do other tests/labs that needs physical hardware.

Three RPi4

They will be running a three node k3s (etcd) cluster as default.

Network diagram

                     external eth1 (dhcp)
                       │
                       │
                       │
                 ┌─────┴──────┐
                 │            │
                 │            │
                 │   Admin    ├───────── wifi AP wlan0
                 │            │            Internal
                 │            │
                 └┬──┬───┬──┬─┘
                  │  │   │  │               eth0.250
                  │  │   │  └───────────────arigap
             ┌────┘  │   │              (172.18.250.1/24)
             │       │   │
eth0 (172.18.0.1/24) │   │
       Internal      │   └───────┐
                     │           │
                 eth0.100        │
                 Public-1        │
             (172.18.100.1/24)   │
                                 │
                             eth0.200
                             Public-2
                         (172.18.200.1/24)