WOVED-50: add aws-cli v2 + azure-cli to codex-shell#14
Merged
Conversation
Phase 1 worker image dependency. Workers spawned by the manager will
need non-interactive cloud auth (AWS + Azure) to run sandbox deploys,
helm installs, ECR pushes, etc. — the WOVED-67 design drives that
credential plumbing; this PR just lands the binaries those workers
will call.
Both pinned via ARG so layer caching + image reproducibility hold:
- AWS CLI v2 → ARG AWS_CLI_VERSION=2.18.0, official pre-built zip from
awscli.amazonaws.com. Multi-arch (amd64 → x86_64, arm64 → aarch64)
matching the existing infra-CLI block's arch dispatch.
- Azure CLI → ARG AZ_CLI_VERSION=2.66.0, Microsoft's Debian apt repo
for bookworm. Apt route avoids pinning a specific Python ↔ azure-cli
compatibility matrix (azure-cli has long dependency tails); MS
handles that upstream. Pinned to "${AZ_CLI_VERSION}-1~bookworm"
package version. Microsoft signing key lands in
/etc/apt/keyrings/microsoft.gpg per signed-by best practice.
Grouped into one RUN block to keep the layer count low; both tools
version-print at the end so a bad URL or apt 404 fails the build
loudly. Ticket-suggested versions kept (~az 2.66, aws v2.18); bump
in lockstep with apk8s/.mise.toml when those advance.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
codex-prodromou
approved these changes
May 8, 2026
codex-prodromou
left a comment
Collaborator
There was a problem hiding this comment.
Codex review: no blocking issues.
Validation performed:
- GitHub checks are green for both
build (codex)andbuild (claude). - Verified current upstream availability for the pinned installs: AWS CLI v2.18.0 zips return 200 for
x86_64andaarch64; Microsoft bookworm apt repo currently carriesazure-cli=2.66.0-1~bookwormfor bothamd64andarm64.
The Dockerfile arch mapping and cleanup look consistent with the existing toolchain block.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds AWS CLI v2 and Azure CLI to the codex-shell image, both pinned via
ARGfor reproducibility. Phase 1 worker image dependency — the manager-spawned worker pods will need non-interactive cloud auth to run sandbox deploys / helm installs / ECR pushes (WOVED-67 drives the credential plumbing; this PR just lands the binaries those workers will call).Versions
AWS_CLI_VERSION=2.18.0awscli.amazonaws.comAZ_CLI_VERSION=2.66.0bookworm)${AZ_CLI_VERSION}-1~bookwormTicket-suggested versions (
~az 2.66, aws v2.18) preserved; bump in lockstep withapk8s/.mise.tomlwhen those advance.Why apt for az-cli (not pip / pipx / uv)
azure-clihas a long dependency tail and has historically been picky about Python versions. The MS apt repo lets us pin a specific package version while letting MS handle the Python ↔ azure-cli compatibility matrix upstream. Avoids the failure mode where Python 3.14 ships in this image (viauv) and a hypotheticaluv tool install azure-cli==Xfails to resolve transitive deps.Multi-arch
Both CLIs ship native amd64 + arm64 binaries. The Dockerfile's existing
dpkg --print-architecturedispatch is reused; AWS CLI v2 maps via the samecasepattern as thecilium-cliblock above.Layer / cache
Single new
RUNblock, grouped between the existing infra-CLIs block and the per-agent CLI install. Both tools version-print at the end so a bad URL or apt 404 fails the build loudly.Out of scope
apk8s/.mise.tomlto mirror the same pins (separate repo, separate PR — flag for follow-up so the bumps stay in sync).Test plan
codexandclaudevariants successfullydocker run ... aws --versionreportsaws-cli/2.18.0docker run ... az --versionreportsazure-cli 2.66.0linux/amd64andlinux/arm64🤖 Generated with Claude Code