Skip to content

infra: simplify — remove GCP playbooks, reconcile agent deploy workflow - #2

Closed
posix4e wants to merge 1 commit into
mainfrom
wip/infra-simplify
Closed

infra: simplify — remove GCP playbooks, reconcile agent deploy workflow#2
posix4e wants to merge 1 commit into
mainfrom
wip/infra-simplify

Conversation

@posix4e

@posix4e posix4e commented Mar 23, 2026

Copy link
Copy Markdown
Member

Summary

  • Remove all GCP Ansible playbooks and GCP-only templates (~1900 lines deleted)
  • Remove orphaned baremetal-deploy.yml (superseded by baremetal-agent-deploy.yml which is what CI actually uses)
  • Remove staging-deploy.yml workflow (GCP-only; baremetal-staging-deploy.yml is the active staging workflow)
  • Add infra/STATUS.md documenting the simplified baremetal-only structure
  • Update CLAUDE.md to reflect current infrastructure

What remains

  • baremetal-agent-deploy.yml — the single playbook used by both staging and production CI
  • vm-launch.sh, vm-stop.sh, vm-status.sh — VM lifecycle scripts used by the playbook
  • agent.json.j2, control-plane.json.j2 — config templates
  • Inventory files for staging/production (used for manual runs)

Test plan

  • Verify baremetal-staging-deploy.yml workflow still references correct playbook path
  • Verify baremetal-production-deploy.yml workflow still references correct playbook path
  • Confirm no other workflow or script references the removed files

🤖 Generated with Claude Code

@posix4e posix4e closed this Mar 24, 2026
@posix4e posix4e reopened this Mar 24, 2026
@posix4e
posix4e force-pushed the wip/infra-simplify branch from 4a59273 to fab4707 Compare March 24, 2026 16:10
@posix4e
posix4e force-pushed the wip/infra-simplify branch from f9a76a1 to fb74a8c Compare March 24, 2026 16:29
@posix4e
posix4e force-pushed the wip/infra-simplify branch from fb74a8c to c7e0464 Compare March 24, 2026 16:36
@posix4e
posix4e force-pushed the wip/infra-simplify branch from c7e0464 to 72bfe26 Compare March 24, 2026 18:47
@posix4e
posix4e force-pushed the wip/infra-simplify branch from 72bfe26 to df6c898 Compare March 24, 2026 18:51
@posix4e
posix4e force-pushed the wip/infra-simplify branch from df6c898 to 411179d Compare March 24, 2026 19:03
@posix4e
posix4e force-pushed the wip/infra-simplify branch 2 times, most recently from 6c8cfe5 to c3d07aa Compare March 24, 2026 19:08
@posix4e

posix4e commented Mar 24, 2026

Copy link
Copy Markdown
Member Author

Superseded by PR #3 (wip/infra-simplify-clean) which includes all these changes plus security hardening, Packer fix, and proper secret wiring.

@posix4e posix4e closed this Mar 24, 2026
posix4e added a commit that referenced this pull request Apr 11, 2026
The previous pin (easyenclave-75e0b30fa162) had two runtime bugs that
were silently fatal for OCI container workloads:

1. src/container.rs used bollard, which tried to talk to /run/podman/
   podman.sock — but mkosi.conf didn't install podman, so the socket
   never existed. Any EE_BOOT_WORKLOADS with an image: ref would fail
   at pull_and_run.

2. Fixed by easyenclave#46 (Rust-native libcontainer), but then
   exposed bug #2: the sealed rootfs had no libseccomp.so.2, so
   easyenclave crashed at dynamic-link time and PID 1 died → kernel
   panic at boot.

easyenclave#47 added libseccomp2 to mkosi.conf Packages, and the
resulting easyenclave-9ff1a1fca190 image passes image.yml's full
pipeline (build + release + smoke-test boot a real TDX VM to
"listening on"). This is the first sealed image with a functional
container runtime.

Cross-project compute.imageUser has been granted to both
easyenclave-staging-ci@eestaging and 654815109728-compute@developer
on the new image.

The ghcr pins (dd-register/dd-web :31ff718b169b) are unchanged for
this commit — those still point at the manual-dispatch tag from dd#73.
A follow-up can bump them to :18158c8bd438 (dd#75 merge commit,
currently building) or switch to :latest for staging.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
posix4e added a commit that referenced this pull request Apr 11, 2026
The previous pin (easyenclave-75e0b30fa162) had two runtime bugs that
were silently fatal for OCI container workloads:

1. src/container.rs used bollard, which tried to talk to /run/podman/
   podman.sock — but mkosi.conf didn't install podman, so the socket
   never existed. Any EE_BOOT_WORKLOADS with an image: ref would fail
   at pull_and_run.

2. Fixed by easyenclave#46 (Rust-native libcontainer), but then
   exposed bug #2: the sealed rootfs had no libseccomp.so.2, so
   easyenclave crashed at dynamic-link time and PID 1 died → kernel
   panic at boot.

easyenclave#47 added libseccomp2 to mkosi.conf Packages, and the
resulting easyenclave-9ff1a1fca190 image passes image.yml's full
pipeline (build + release + smoke-test boot a real TDX VM to
"listening on"). This is the first sealed image with a functional
container runtime.

Cross-project compute.imageUser has been granted to both
easyenclave-staging-ci@eestaging and 654815109728-compute@developer
on the new image.

The ghcr pins (dd-register/dd-web :31ff718b169b) are unchanged for
this commit — those still point at the manual-dispatch tag from dd#73.
A follow-up can bump them to :18158c8bd438 (dd#75 merge commit,
currently building) or switch to :latest for staging.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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