OpenTofu libvirt module (k3s-dev NAT 10.73.0.0/24, 3x 6GiB/4vCPU VMs, 20G OS +
40G thin data, host-passthrough), cloud-init baseline (k3s/Cilium/Longhorn
prereqs, static net), Ansible k3s-HA + Cilium (kube-proxy replacement, Gateway
API, Hubble; flannel/kube-proxy/Traefik disabled). PM fix: escape ${...} in a
cloud-init template comment (tofu templatefile parse). tofu fmt/init/validate =
Success; ansible --syntax-check + yamllint pass. NOTHING executed (no apply).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
12 lines
495 B
YAML
12 lines
495 B
YAML
---
|
|
# Shared connection + cluster facts for every k3s node.
|
|
|
|
# cloud-init created this login user (tofu var login_user); it has NOPASSWD sudo.
|
|
ansible_user: k3s
|
|
|
|
# The kube-apiserver endpoint the whole stack agrees on: the primary node IP.
|
|
# Used for k3s --tls-san / secondary --server AND for Cilium k8sServiceHost so the
|
|
# Ansible bootstrap and the Flux HelmRelease stay in PARITY (docs/02 contract).
|
|
k3s_api_host: "{{ hostvars[groups['k3s_primary'][0]]['ansible_host'] }}"
|
|
k3s_api_port: 6443
|