Skip to content

PKG-1426: Bake qemu into Graviton worker AMIs via an agent-image factory#369

Open
nogueiraanderson wants to merge 2 commits into
mainfrom
PKG-1426-agent-image-factory
Open

PKG-1426: Bake qemu into Graviton worker AMIs via an agent-image factory#369
nogueiraanderson wants to merge 2 commits into
mainfrom
PKG-1426-agent-image-factory

Conversation

@nogueiraanderson

Copy link
Copy Markdown
Collaborator

Feature

  • A parameterized Packer factory (images/jenkins-agent/) baking the Tier-A worker agent AMIs, with the arm64 profile carrying qemu user-mode emulation so x86_64-only test helper containers run on Graviton workers

Why

  • AL2023 does not package qemu-user-static, and the boot-script alternative meant a boot-time binary pull with unbounded retries duplicated per master (review on the closed predecessor PR)
  • Baking also removes the multi-minute per-launch toolchain install every worker label family pays today, and the structure extends to the other image families by adding a provisioner, not copying a template
  • Emulation is validated end-to-end on the production qemu line: native aarch64 PXB build plus all three x86_64 helpers and an MTR subset green

Tickets

- Parameterized Packer factory (images/jenkins-agent) for the Tier-A worker
  agent AMIs: fleet-common payload baked per (os, arch), extension by
  provisioner not by template copy
- arm64 capability profile bakes the digest-pinned qemu static binary with
  persistent systemd binfmt registration (F flag), BuildID-verified,
  bounded-retry pull, file(1) preinstalled
- Bake -> fresh-boot smoke -> role-tag-flip promote; failed smokes deregister
  the candidate; emulation asserted end-to-end on arm64 smokes
- GHA workflow: no-AWS validate on PRs, dispatch-gated OIDC bake matrix
- OIDC role + SSM builder profile + no-ingress SG as a parameterized sibling
  of the ppg factory substrate, exact-subject trust on this repository
…ply-chain pins

- Grant ssm:GetParameter on the AL2023 public parameter path and
  iam:GetInstanceProfile on the builder profile, the first bake dies
  without both
- skip_create_ami on the smoke build removes the by-product AMI and the
  concurrent-matrix cleanup race entirely
- Read the AMI id from a packer manifest and cross-check its arch tag,
  never scrape human output; always() cleanup deregisters an unpromoted
  candidate on any failure or cancellation
- Correct the aws-actions/configure-aws-credentials pin to the real
  v4.3.1 commit; pin packer 1.15.4 and amazon plugin 1.8.2 exactly
- Cap the job at 55 minutes so it fails before the one-hour OIDC session
  expires mid-cleanup
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