Add Ansible playbook for the management cluster (step 1)

VM from Ubuntu cloud image on pv1-1, pinned k3s, cert-manager and
cluster-api-operator via k3s HelmChart CRs, CAPI providers as operator CRs,
kubeconfig fetch + cluster-inspector kubeconfig. Lint passes (production).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-27 01:02:50 +02:00
co-authored by Claude Opus 5.5
parent ac7d5a45b9
commit 66d61b21fc
12 changed files with 440 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
# Pinned versions: docs/versions.md is the source of truth, keep in sync.
k3s_version: v1.35.8+k3s1
cert_manager_chart_version: v1.21.2
capi_operator_chart_version: 0.28.0
capi_version: v1.12.11
capmox_version: v0.9.1
ipam_in_cluster_version: v1.1.1
ubuntu_image_url: https://cloud-images.ubuntu.com/noble/20260926/noble-server-cloudimg-amd64.img
ubuntu_image_sha256: 6a81c37564db9b1ee84e141922625e1d7c5b389b99bb3c572e0243607d5bb4d2
ubuntu_image_path: /var/lib/vz/template/iso/noble-server-cloudimg-amd64-20260926.img
# Proxmox (token secret lives in secrets.yml)
proxmox_url: https://192.168.0.8:8006
proxmox_token_id: capmox@pve!capi
proxmox_storage: local-lvm
proxmox_bridge: vmbr0
proxmox_vlan: 4
# Management VM (VLAN 4). Fill in the empty values before the first run.
mgmt_vmid: ""
mgmt_name: lab-mgmt
mgmt_ip: ""
mgmt_prefix: 24
mgmt_gateway: ""
mgmt_dns: ""
mgmt_cores: 2
mgmt_memory_mib: 4096
mgmt_disk_size: 30G
mgmt_ssh_public_key: "{{ lookup('file', lookup('env', 'HOME') + '/.ssh/id_ed25519.pub') }}"
# Installed by the cluster-api-operator; CR namespace = install namespace (clusterctl defaults).
capi_providers:
- { kind: CoreProvider, name: cluster-api, namespace: capi-system, version: "{{ capi_version }}" }
- { kind: BootstrapProvider, name: kubeadm, namespace: capi-kubeadm-bootstrap-system, version: "{{ capi_version }}" }
- { kind: ControlPlaneProvider, name: kubeadm, namespace: capi-kubeadm-control-plane-system, version: "{{ capi_version }}" }
- { kind: InfrastructureProvider, name: proxmox, namespace: capmox-system, version: "{{ capmox_version }}", config_secret: capmox-variables }
- { kind: IPAMProvider, name: in-cluster, namespace: capi-ipam-in-cluster-system, version: "{{ ipam_in_cluster_version }}" }