# 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 set `KUBECONFIG=` 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`).