
Production-ready Kubernetes configurations for home lab deployment on Talos Linux.
This repository provides:
- Kubernetes Manifests: Production-grade Kustomize configurations for Talos Linux cluster
- Infrastructure as Code: Terraform and Ansible for Proxmox VM provisioning
- Comprehensive Documentation: Setup guides, operations manuals, and troubleshooting
- Home server with centralized storage, password management, and secure access
- Small office with document sharing and monitoring
- Learning platform for Kubernetes and cloud-native technologies
┌─────────────────────────────────────────────────────────────────────────┐
│ Home Network (192.168.1.0/24) │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ PROXMOX VE 9.x HA CLUSTER │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ pve1 (.11) │ │ pve2 (.12) │ │ pve3 (.13) │ │ │
│ │ │ Beelink #1 │ │ Beelink #2 │ │ Beelink #3 │ │ │
│ │ │ ─────────── │ │ ─────────── │ │ ─────────── │ │ │
│ │ │ │ VM 100 │ │ │ │ VM 101 │ │ │ │ VM 102 │ │ │ │
│ │ │ │talos-cp │ │ │ │ worker-2│ │ │ │ worker-3│ │ │ │
│ │ │ │ (.21) │ │ │ │ (.22) │ │ │ │ (.23) │ │ │ │
│ │ │ └─────────┘ │ │ └─────────┘ │ │ └─────────┘ │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────▼──────────┐ │
│ │ Kubernetes Cluster │ K8s API VIP: .20 │
│ │ ───────────────── │ │
│ │ Traefik, Authelia │ │
│ │ Vaultwarden │ │
│ │ Nextcloud, Homepage│ │
│ │ ArgoCD, Prometheus │ │
│ │ Grafana, Loki │ │
│ │ Jaeger, Conjur │ │
│ └──────────┬──────────┘ │
│ │ NFS Storage │
│ ┌──────────▼──────────┐ │
│ │ Synology DS 224+ │ │
│ │ 192.168.1.5 │ │
│ │ ────────────────── │ │
│ │ NFS: K8s PVs │ │
│ │ Backups: Velero │ │
│ └─────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
| Resource |
IP Address |
Purpose |
| Proxmox Host 1 |
192.168.1.11 |
pve1 - Hypervisor |
| Proxmox Host 2 |
192.168.1.12 |
pve2 - Hypervisor |
| Proxmox Host 3 |
192.168.1.13 |
pve3 - Hypervisor |
| Talos VM 1 |
192.168.1.21 |
Control plane + worker |
| Talos VM 2 |
192.168.1.22 |
Worker |
| Talos VM 3 |
192.168.1.23 |
Worker |
| K8s API VIP |
192.168.1.20 |
Kubernetes API endpoint |
| MetalLB Pool |
192.168.1.210-220 |
Service LoadBalancers |
| Synology NAS |
192.168.1.5 |
NFS storage for PVs |
- 3x Beelink Mini S13 (Intel N150, 4 cores each)
- Proxmox VE 9.x on each node (HA cluster)
- 3x Talos VMs (12GB RAM, 3 vCPU, 100GB disk each)
- Synology DS 224+ (NFS storage, backups)
| Component |
Technology |
Purpose |
| OS |
Talos Linux |
Immutable, API-managed |
| CNI |
Cilium |
eBPF networking |
| Storage |
NFS CSI |
Synology integration |
| Load Balancer |
MetalLB |
Bare-metal LB |
| Ingress |
Traefik |
Reverse proxy, HTTPS |
| Certificates |
cert-manager |
Let's Encrypt |
| Secrets |
Conjur OSS |
Enterprise secrets |
| GitOps |
ArgoCD |
Declarative deployments |
| Metrics |
Prometheus |
Monitoring |
| Visualization |
Grafana |
Dashboards |
| Logging |
Loki |
Log aggregation |
| Tracing |
Jaeger |
Distributed tracing |
| Backups |
Velero |
Cluster backups |
| Component |
Version |
| Talos Linux |
v1.9.x |
| Kubernetes |
1.29.x |
| Proxmox VE |
9.x |
| Cilium |
1.15.x |
| Traefik |
3.x |
# 1. Review setup guides
cat docs/PROXMOX_SETUP.md
cat docs/TALOS_KUBERNETES_SETUP.md
# 2. Install Proxmox VE on Beelinks (.11, .12, .13)
# 3. Create Proxmox cluster and configure HA
# 4. Create Talos VMs (100, 101, 102)
# 5. Apply Talos configurations
cd talos
talosctl gen config my-cluster https://192.168.1.20:6443
talosctl apply-config --insecure --nodes <dhcp-ip> --file controlplane.yaml
talosctl apply-config --insecure --nodes <dhcp-ip> --file worker-2.yaml
talosctl apply-config --insecure --nodes <dhcp-ip> --file worker-3.yaml
# 6. Bootstrap cluster
talosctl bootstrap --nodes 192.168.1.21
# 7. Get kubeconfig
talosctl kubeconfig .
export KUBECONFIG=$(pwd)/kubeconfig
kubectl get nodes
# 8. Deploy infrastructure
kubectl apply -k k8s/bootstrap/cilium/
kubectl apply -k k8s/bootstrap/metallb/
kubectl apply -k k8s/bootstrap/cert-manager/
kubectl apply -k k8s/infrastructure/nfs-provisioner/
# 9. Deploy applications
kubectl apply -k k8s/overlays/production/
See TALOS_KUBERNETES_SETUP.md for detailed instructions.
| Service |
Purpose |
Namespace |
| Traefik |
Ingress controller |
traefik |
| Authelia |
SSO with 2FA |
authelia |
| Vaultwarden |
Password manager |
vaultwarden |
| Nextcloud |
File sync |
nextcloud |
| Homepage |
Dashboard |
homepage |
| IT-Tools |
Utilities |
it-tools |
| Service |
Purpose |
Namespace |
| ArgoCD |
GitOps |
argocd |
| Prometheus |
Metrics |
monitoring |
| Grafana |
Dashboards |
monitoring |
| Loki |
Logging |
logging |
| Jaeger |
Tracing |
tracing |
| Conjur |
Secrets |
conjur |
| Velero |
Backups |
velero |
synology_containers/
├── docs/ # Documentation
├── infrastructure/ # Terraform and Ansible
│ ├── terraform/ # VM provisioning
│ └── ansible/ # Node configuration
├── k8s/ # Kubernetes manifests
│ ├── base/ # Base configurations
│ ├── overlays/ # Environment overlays
│ ├── infrastructure/ # Infrastructure components
│ └── optional/ # Optional enhancements
├── talos/ # Talos configurations
├── scripts/ # Helper scripts
└── README.md # This file
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see LICENSE for details.
Documentation | K8s Manifests | Infrastructure