Skip to content

aaronschm/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homelab

K3s-based homelab cluster with VLAN isolation, GitOps via Argo CD, and fully scripted infrastructure provisioning.

Architecture

VLAN Name Subnet Role
20 Management 10.10.20.0/24 Admin LXC, Update Server, Load Balancer
24 DMZ 10.10.24.0/24 Traefik reverse proxy and Gameserver
25 Cluster 10.10.25.0/24 K3s nodes (no internet access)

IP Assignments

Host Type VLAN IP
Admin LXC LXC 20 – Management 10.10.20.20
Load Balancer LXC 20 – Management 10.10.20.21
Update Server LXC 20 – Management 10.10.20.100
Registry Server LXC 20 – Management 10.10.20.101
DMZ Reverse Proxy (Traefik) LXC 24 – DMZ 10.10.24.10
Gameserver (Pelican Wing) VM 24 – DMZ 10.10.24.20
K3s Control Plane VM 25 – Cluster 10.10.25.11
K3s Agent VM 25 – Cluster 10.10.25.101

All IPs are also defined in cluster.conf. Update it before running any scripts.

Setup Order

Follow this order — each step depends on the previous ones.

# Component Doc Script
1 Network / VLANs network-setup
2 Admin LXC admin-setup scripts/admin-setup.sh
3 Update Server update-server-setup scripts/update-server-setup.sh
4 DMZ Reverse Proxy dmz-reverse-proxy scripts/dmz-reverse-proxy-setup.sh
5 Load Balancer load-balancer-setup scripts/load-balancer-setup.sh
6 Container Registry registry-setup scripts/registry-setup.sh
7 K3s Cluster k3s-setup scripts/k3s-control-plane-setup.sh, scripts/k3s-agent-setup.sh
8 GitOps Bootstrap gitops-setup
9 Gameserver (Wings) gameserver-setup scripts/gameserver-setup.sh

Repository Structure

├── ansible/              # Ansible playbooks (WIP)
├── docs/                 # Setup guides for each component
├── kubernetes/
│   ├── platform/         # Cluster infrastructure (Longhorn, Argo CD)
│   ├── common/           # Shared resources (namespaces, sealed secrets)
│   └── apps/             # Application manifests
├── scripts/              # Bootstrap scripts for LXCs and VMs
└── cluster.conf          # IP addresses and K3s token

Configuration

All IPs and the K3s token are defined in cluster.conf. Update it before running any scripts.

About

My Kubernetes Homelab setup.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages