4.3 KiB
4.3 KiB
RKE2 Cluster Topology & Inventory
Cluster Nodes
| VMID | Name | Role | IP | Specs | RKE2 Service |
|---|---|---|---|---|---|
| 118 | rke2-cp-01 | control-plane,etcd | 10.0.30.51 | 4c/12GB/40GB | rke2-server |
| 130 | rke2-cp-02 | control-plane,etcd | 10.0.30.52 | 4c/12GB/40GB | rke2-server |
| 129 | rke2-cp-03 | control-plane,etcd | 10.0.30.53 | 4c/12GB/40GB | rke2-server |
| 128 | rke2-worker-01 | worker | 10.0.30.61 | 4c/12GB/80GB | rke2-agent |
| 132 | rke2-worker-02 | worker | 10.0.30.62 | 4c/12GB/80GB | rke2-agent |
| 131 | rke2-worker-03 | worker | 10.0.30.63 | 4c/12GB/80GB | rke2-agent |
- RKE2 API VIP: 10.0.30.50 (Keepalived on CP nodes)
- RKE2 version: v1.35.2+rke2r1
- Container runtime: containerd 2.1.5-k3s1
- OS: Debian 12 (bookworm), kernel 6.1.0-44-amd64
Management VM
| VMID | Name | IP | Specs |
|---|---|---|---|
| 200 | mgmt-runner-01 | 10.0.30.X (DHCP) | 4c/4GB/30GB |
- Has
kubectl,helm,git, GitHub Actions runner - Kubeconfig at
/root/.kube/config(must setKUBECONFIG=explicitly) - GitHub Actions runner:
actions.runner.dsgrafiniert-iac-homelab.mgmt-runner-01 - OpenTofu state files in
/opt/tofu-state/
LoadBalancer IP Assignments
| Service | Namespace | LB IP | Ports |
|---|---|---|---|
| Traefik Ingress | kube-system | 10.0.30.202 | 80, 443 |
| PostgreSQL RW (CNPG) | postgres | 10.0.30.200 | 5432 |
Cilium LB Pool: 10.0.30.200 - 10.0.30.250 (48 IPs available)
Removed: K8s MariaDB MaxScale (was 10.0.30.201, namespace deleted 2026-07-12). MariaDB Galera runs as native VMs, not in K8s.
Non-K8s services on same subnet (must not overlap with LB pool):
- 10.0.30.50 = RKE2 API VIP (Keepalived)
- 10.0.30.70 = MaxScale VIP (Keepalived, standalone Galera VMs)
- 10.0.30.71-73 = Galera VMs (VM300-302)
- 10.0.30.99 = Docker host (CT121)
- 10.0.30.104 = Frigate (CT120)
- 10.0.30.105 = Gitea (CT108)
- 10.0.30.10 = Home Assistant (VM106)
Operators & Add-ons
| Component | Namespace | Status |
|---|---|---|
| Cilium CNI | kube-system | Running (eBPF, L2 announcements) |
| Traefik Ingress | kube-system | Running (RKE2-bundled) |
| CoreDNS | kube-system | Running (RKE2-bundled) |
| Metrics Server | kube-system | Running |
| External Secrets Operator | external-secrets | Running (1Password backend) |
| CloudNativePG | cnpg-system | Running (PostgreSQL operator) |
| Velero | velero | Running (S3 backup) |
| Ceph CSI | kube-system | Running (RBD storage, external Ceph) |
| ArgoCD | argocd | Running (GitOps, App-of-Apps) |
Removed (2026-07-12): MariaDB Operator + CRDs — namespace
mariadb and mariadb-operator deleted. Galera runs as native VMs.
ArgoCD Applications
| App | Sync Wave | Status | Description |
|---|---|---|---|
| root | — | Synced/Healthy | Root App-of-Apps |
| operators | 0 | Synced/Healthy | CNPG, Velero operators |
| databases | 1 | Synced/Healthy | PostgreSQL cluster |
| backups | 2 | Synced/Healthy | Velero schedules |
| memory | 3 | Unknown/Degraded | Qdrant + Ollama + Memory API |
| cloudnativepg-operator | — | Synced/Healthy | CNPG operator |
| velero-operator | — | Synced/Healthy | Velero operator |
Removed (2026-07-12): mariadb-operator, mariadb-operator-crds
apps — deleted from repo, CRs cleaned up manually, namespaces + CRDs purged.
IaC Repositories (Gitea at 10.0.30.105:3000)
| Repo | Content |
|---|---|
| dominik/iac-homelab | Main IaC: 7 epics, OpenTofu, Ansible, ArgoCD apps |
| dominik/observability-iac | Observability: Loki, Prometheus/Thanos, Grafana |
| d.schoen/terraform-proxmox-k8s | Older Terraform-Proxmox-K8s work |
| d.schoen/packer-proxmox | VM templates with Packer |
PVE Node Map
| Node | IP | Notes |
|---|---|---|
| proxmox1 | 10.0.20.10 | Cluster master (API endpoint) |
| proxmox2 | 10.0.20.20 | Hosts CP-03, Worker-02 |
| proxmox3 | 10.0.20.30 | Hosts CP-02, Worker-03, mgmt-runner |
| proxmox4 | 10.0.20.40 | Hosts MaxScale VM, Galera VM |
| proxmox5 | 10.0.20.50 | Hosts CP-01, Worker-01 |
| proxmox6 | 10.0.20.60 | Hosts Gitea, Authelia, Paperless |
| proxmox7 | 10.0.20.70 | Hosts monitoring, Omada, Ollama |
| n5pro | 10.0.20.91 | AMD GPU, Frigate, Seafile, Immich |
Note: VM placements change with HA migration. Always discover
current placement before operating (scan all nodes with qm list).