miroir/notes/miroir-zc2.6.md
jedarden 4ace219458 P12.OP6 (miroir-zc2.6): Document arm64 support deferral to v1.x+
This bead remains open as a placeholder. ARM64 support is explicitly
deferred to v1.x+ per Plan §15 Open Problem #6. No current demand
justifies the CI complexity; fleet is all amd64.

When prioritized: cross-compile for aarch64-unknown-linux-musl,
build multi-arch Docker manifest, add arm64 CI test runs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 20:43:41 -04:00

1.6 KiB

P12.OP6: ARM64 Support (Deferred to v1.x+)

Status: DEFERRED

This bead remains open as a placeholder for future arm64 support. Per Plan §15 Open Problem #6: "Not planned for v0.x. Added when K8s ARM node support is required."

Current State (2026-05-08)

Architecture

  • Target: x86_64-unknown-linux-musl only
  • CI: GitHub Actions ubuntu-latest (amd64 runners)
  • Fleet: All amd64 (iad-ci cluster, ardenone nodes)
  • Helm: Architecture-agnostic (no changes needed when arm64 is added)

Build Artifacts

  • miroir-proxy: Static musl binary (amd64 only)
  • miroir-ctl: Control plane binary (amd64 only)

When Prioritized (v1.x+)

Required Changes

  1. CI Pipeline (.github/workflows/test.yml or separate build workflow):

    - name: Build multi-arch
      run: |
        rustup target add x86_64-unknown-linux-musl
        rustup target add aarch64-unknown-linux-musl
        cargo build --release --target x86_64-unknown-linux-musl -p miroir-proxy
        cargo build --release --target aarch64-unknown-linux-musl -p miroir-proxy
    
  2. Docker Image:

    • Build manifest list spanning linux/amd64 + linux/arm64
    • Publish to ghcr.io/jedarden/miroir:<version>
  3. Testing:

    • Phase 9 CI: Add arm64 test runs on arm64 runners

Triggers for Promotion

Promote this bead to in-progress when:

  • Fleet includes ARM nodes (Hetzner Ampere, AWS Graviton, GCP Tau T2A, Rackspace Spot)
  • Concrete deployment requirement emerges
  • CI infrastructure for arm64 is available/justified

References