lab1 workers on both PVE nodes: per-node template + MD, balanced CA
PVE is now the 2-node cluster homelab (pv1-1 + pv1-2), no shared storage: - template 101 copied to pv1-2 as 9101; MDs lab1-workers-pv1-1 (max 6) and lab1-workers-pv1-2 (max 12), PMTs pinned with allowedNodes; pool .31-.50; lab1-workers renamed for symmetry (decision #18, #7 superseded) - CA: balancing-label node.cluster.x-k8s.io/pool (+ pool label, capacity labels with os/arch, maxPods on the MDs), scan-interval 1m, v 2, default QPS (#19). Scale test: 16 pods -> 4 + 4 across both nodes. - runbook, image-builder copy procedure, fixes tables, future task to report three CA clusterapi bugs upstream, lab facts, changelog, execution log Plan: docs/plans/2026-09-29-2315-pv1-2-workers.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,33 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-09-30 11:05 CEST — lab1 workers on both PVE nodes, balanced autoscaling
|
||||
|
||||
- **PVE cluster.** It is now the 2-node cluster `homelab`: `pv1-1` plus `pv1-2` (192.168.0.10).
|
||||
- `vmbr0` on `pv1-2` is VLAN-aware.
|
||||
- Template 101 is copied to `pv1-2` as 9101 (clone + offline migrate). `local-lvm` can't clone
|
||||
across nodes.
|
||||
- **lab1 workers.** One MachineDeployment per PVE node: `lab1-workers-pv1-1` (max 6) and
|
||||
`lab1-workers-pv1-2` (max 12).
|
||||
- Each is pinned by `allowedNodes`.
|
||||
- The node IP pool is `.31–.50`.
|
||||
- The control plane stays on `pv1-1`.
|
||||
- The old `lab1-workers` was replaced to get symmetric names.
|
||||
- **cluster-autoscaler.** Balances the two groups (a scale-up of 16 pods gave 4 + 4).
|
||||
- Settings: `balancing-label: node.cluster.x-k8s.io/pool`, `scan-interval: 1m` and `v: 2`.
|
||||
- The MDs got the pool label, `capacity…/labels` (os/arch) and `maxPods`.
|
||||
- The request rate is left at the default. `scan-interval` cuts the discovery calls the
|
||||
clusterapi provider makes without a cache.
|
||||
- **Findings.** Three CA 1.35.2 clusterapi bugs: uncached discovery, labels read from a wrong
|
||||
v1beta2 path, and empty os/arch labels for CAPMOX. They are worked around in config and logged
|
||||
in `docs/future-tasks.md` for reporting upstream.
|
||||
- **Files:**
|
||||
- `configs/capi/lab1.yaml`, `configs/cluster-autoscaler/values.yaml`,
|
||||
`configs/capi/clusterctl.yaml.example`
|
||||
- `docs/phase-1-proxmox-capi.md`, `docs/image-builder-proxmox.md`, `docs/decisions.md` (#18, #19;
|
||||
#7 superseded), `docs/future-tasks.md`
|
||||
- plan, execution log and session note
|
||||
- `README.md`, `CLAUDE.md`, `AGENTS.md`
|
||||
|
||||
## 2026-09-27 10:40 CEST — Management cluster running, built by an idempotent Ansible playbook
|
||||
|
||||
- Phase 1 Step 2 done: `ansible/mgmt.yml` creates VM 201 `lab-mgmt` (192.168.4.21) on `pv1-1`
|
||||
|
||||
Reference in New Issue
Block a user