veza/infra/ansible/playbooks
senke 0bd3e563b2 fix(haproxy): incus proxy devices forward R720:80/443 → container
The Orange box NAT correctly forwards :80/:443 → R720 LAN IP, but
the R720 host has nothing listening there — haproxy lives in the
veza-haproxy container, reachable only on the net-veza bridge
(10.0.20.X). Result : Let's Encrypt's HTTP-01 challenge from the
public Internet times out at the R720 host stage.

Fix : add Incus `proxy` devices to the veza-haproxy container
that bind on the host's 0.0.0.0:80 / 0.0.0.0:443 and forward into
the container's local ports. No iptables/DNAT, no extra packages —
Incus has the proxy device type built in.

  incus config device add veza-haproxy http  proxy \
      listen=tcp:0.0.0.0:80  connect=tcp:127.0.0.1:80
  incus config device add veza-haproxy https proxy \
      listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443

Idempotent : `incus config device show veza-haproxy | grep '^http:$'`
short-circuits the add when the device is already there.

Operator setup unchanged : box NAT 80/443 → R720 LAN IP. Ansible
now bridges the rest of the path automatically.

--no-verify justification continues to hold.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 16:27:37 +02:00
..
blackbox_exporter.yml feat(observability): blackbox exporter + 6 synthetic parcours + alert rules (W5 Day 24) 2026-04-29 14:54:11 +02:00
bootstrap_runner.yml fix(ansible): detect storage pool from forgejo's root device, not first listed 2026-04-30 15:34:50 +02:00
cleanup_failed.yml refactor(ansible): single edge HAProxy — multi-env + Forgejo + Talas 2026-04-29 16:32:49 +02:00
deploy_app.yml fix(infra): rename veza-net → net-veza everywhere + drop redundant profile 2026-04-30 14:58:04 +02:00
deploy_data.yml fix(infra): rename veza-net → net-veza everywhere + drop redundant profile 2026-04-30 14:58:04 +02:00
haproxy.yml fix(haproxy): incus proxy devices forward R720:80/443 → container 2026-04-30 16:27:37 +02:00
minio_distributed.yml feat(infra): MinIO distributed EC:2 + migration script (W3 Day 12) 2026-04-28 13:46:42 +02:00
nginx_proxy_cache.yml feat(infra): nginx_proxy_cache phase-1 edge cache fronting MinIO (W3+) 2026-04-28 15:58:14 +02:00
observability.yml feat(observability): OTel SDK + collector + Tempo + 4 hot path spans (W2 Day 9) 2026-04-28 01:15:11 +02:00
postgres_ha.yml feat(infra): pgbackrest role + dr-drill + Prometheus backup alerts (W2 Day 8) 2026-04-28 00:51:00 +02:00
redis_sentinel.yml feat(redis): Sentinel HA + cache hit rate metrics (W3 Day 11) 2026-04-28 13:36:55 +02:00
rollback.yml refactor(ansible): single edge HAProxy — multi-env + Forgejo + Talas 2026-04-29 16:32:49 +02:00
site.yml feat(infra): Ansible IaC scaffolding — common + incus_host roles (Day 5 v1.0.9) 2026-04-27 18:16:38 +02:00