Skip to content

infra: Terraform module for the vpcopilot-lab (AWAF BIG-IP + Larkspur) - #38

Merged
henleda merged 1 commit into
mainfrom
infra-vpcopilot-lab-terraform
Aug 12, 2026
Merged

infra: Terraform module for the vpcopilot-lab (AWAF BIG-IP + Larkspur)#38
henleda merged 1 commit into
mainfrom
infra-vpcopilot-lab-terraform

Conversation

@henleda

@henleda henleda commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Adds infra/vpcopilot-lab/ — the copilot's own validation lab as Terraform, so the estate is codified (fixing the "no IaC in the repo" gap) and travels to the new laptop via git.

What it stands up (new AWS account, us-east-2, tag Project=vpcopilot-lab)

  • Advanced-WAF BIG-IP VE — 2-NIC, public VIP Elastic IP, management reachable only via an SSM tunnel (never internet-published). AMI auto-resolves from F5's Marketplace owner (or pin bigip_ami).
  • Larkspur origin (t3.small, Docker) behind the appliance at the fixed 10.30.10.22:8080, so vpcopilot bigip-lab create examples copy-paste.
  • Dedicated VPC 10.30.0.0/16, deliberately separate from nimbus-demo.

Adapted from nimbus-demo/infra, with three deliberate changes

AWAF SKU (not GOOD — GOOD has no ASM), Larkspur as the origin, and no load generators.

Operability

  • onboard/bigip-onboard.sh scripts the two documented onboarding traps: poll mcp-state for running before provisioning asm:nominal, then curl-install AS3.
  • Cost controls in the Makefilemake lab-down / lab-up / lab-nuke, every target scoped to Project=vpcopilot-lab so a stop can never touch another estate.

Safety

No credentials or state in the tree — .gitignore covers .secrets/, *.tfstate, terraform.tfvars, .terraform/. terraform validate passes; plan = 20 to add against account 113938649684. The terraform apply is run by the operator.

Part of the laptop + AWS-account migration (runbook rev. 3).

🤖 Generated with Claude Code

Adds infra/vpcopilot-lab/ — the copilot's own validation lab as Terraform,
adapted from nimbus-demo/infra for the new AWS account. Fixes the "no IaC in
the repo" gap so the estate is codified and travels to the new laptop.

- Advanced-WAF BIG-IP VE (AMI auto-resolved from F5's Marketplace owner, or
  pinned), 2-NIC, public VIP EIP, management reachable ONLY via an SSM tunnel.
- Larkspur origin (t3.small, Docker) behind the appliance, fixed 10.30.10.22
  so `vpcopilot bigip-lab create` examples copy-paste.
- Dedicated VPC 10.30.0.0/16, deliberately separate from nimbus-demo.
- onboard/bigip-onboard.sh scripts the two documented traps: poll mcp-state
  before provisioning asm:nominal, then curl-install AS3.
- Makefile cost controls (lab-up / lab-down / lab-nuke), tag-scoped to
  Project=vpcopilot-lab so a stop can never touch another estate.
- No load generators; no credentials or state in the tree (see .gitignore).

terraform validate passes; plan = 20 to add against account 113938649684.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@henleda
henleda merged commit 24cc752 into main Aug 12, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant