3 Commits

Author SHA1 Message Date
sam
d0b82c4973 first successful two-VM run + fixes surfaced by it
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>
2026-07-20 23:38:43 -07:00
sam
33f9f4daf7 terraform: fmt normalization + deprecated resource rename + commit lockfile
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>
2026-07-20 18:33:39 -07:00
sam
d30ec2074a initial commit: two-VM Proxmox portability test for obmp-docker
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>
2026-07-20 18:19:45 -07:00