The initial two-VM run against a real Proxmox host found three real
bugs in the obmp-docker stack, plus one design issue in this test:
Fixed in obmp-docker (deploy-refinement branch):
- 745f066 deploy.sh: probe sudo with `sudo -n true` instead of
`sudo -v` / `sudo -n -v`; the latter demands a credential
timestamp that NOPASSWD never produces, so both fail on
cloud-init / CI even with NOPASSWD:ALL configured.
- 6df67a7 .env.example: quote GNMI_ADDRESSES with single quotes so
docker compose's .env parser doesn't choke on the mid-line
comma in the double-quoted list form.
Fixed here:
- bmpgen cloud-init: add `port = 1179` under [global.config] to
avoid gobgpd's 179 listener bind failing under Ubuntu 24.04 +
Docker even with --network host and default NET_BIND_SERVICE cap.
We don't accept BGP peers on bmpgen so the port value doesn't
matter as long as it's unprivileged.
- run-test.sh: fix column name for bgp_peers.state -- the opstate
enum uses lowercase 'up', not uppercase 'UP'.
Verified against the live run: 6/6 assertions pass, ip_rib landed
251,760 routes from the store VM's own gobgp connecting to Bromirski's
public full-table feed via --profile test.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Ran `terraform init && terraform validate && terraform fmt` after
installing terraform 1.9.8 locally (which the initial commit couldn't
do since terraform wasn't on the authoring host).
Changes:
- fmt: alignment normalization on image.tf, store_vm.tf, bmpgen_vm.tf,
outputs.tf.
- proxmox_virtual_environment_download_file -> proxmox_download_file
(deprecated in bpg/proxmox v0.111.1, removed in v1.0).
- .terraform.lock.hcl: unignored + committed. Pins bpg/proxmox to
v0.111.1 and hashicorp/random to v3.9.0 so contributors get the same
provider set on `terraform init`.
`terraform validate` is now Success, no warnings.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Terraform (bpg/proxmox) provisions two Ubuntu 24.04 cloud-init VMs on a
Proxmox host, one running obmp-docker's `deploy.sh --scope full-stack`
and the other running GoBGP as a BMP-source stand-in. `scripts/run-test.sh`
runs the six assertions from docs/design.md (containers healthy, BMP
peer up, ip_rib/bgp_peers non-zero, Grafana healthcheck).
Layout:
terraform/ provider + VM + cloud-init snippet resources
terraform/cloud-init/ user-data templates (store + bmpgen)
scripts/ run-test.sh, teardown.sh
docs/design.md topology, assertion set, and rationale
Cred handling:
terraform.tfvars is gitignored; endpoint + api_token can also come
from PROXMOX_VE_ENDPOINT / PROXMOX_VE_API_TOKEN env vars.
Not validated locally: `terraform init && terraform validate` -- the
terraform binary is not on the authoring host. YAML + shell + HCL brace
balance verified.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>