Add Apple Container samples and qualification - #1030
Add Apple Container samples and qualification#1030Richie Gomez (richiemsft) wants to merge 2 commits into
Conversation
Co-authored-by: Copilot <[email protected]> Copilot-Session: b062729b-d6f3-47f6-9df0-6c1d5c8a1e5c
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Co-authored-by: Copilot <[email protected]> Copilot-Session: b062729b-d6f3-47f6-9df0-6c1d5c8a1e5c
| console.log( | ||
| "\nQUALIFICATION PASS: Apple Container networking met the tested MXC boundary.", | ||
| ); | ||
| } finally { |
There was a problem hiding this comment.
issue (non-blocking): This finally handles ordinary failures, but Node exits immediately on the default SIGINT/SIGTERM behavior, so Ctrl-C during any awaited container/network operation skips this cleanup and leaves the labeled resources behind. Since this is an interactive, long-running qualification command, could we install signal handlers that run the same cleanup path before exiting (and ideally reconcile resources carrying OWNERSHIP_LABEL on the next run)?
| @@ -216,15 +216,26 @@ schema version `0.8.0-alpha`: | |||
|
|
|||
There was a problem hiding this comment.
issue (non-blocking): This now documents Apple Container as executable, but docs/schema.md still says the backend is config-only and runtime execution fails closed with unsupported_containment (the apple_container row around line 278). Could we update that canonical schema reference in this PR as well? The two docs currently give contradictory guidance about whether this example can run.
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" | ||
| REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" | ||
| SKIP_EXIT=77 | ||
| INIT_IMAGE="local/mxc-loopback-init:0.2" |
There was a problem hiding this comment.
issue (non-blocking): This adds a third independent copy of the trusted init-image tag, alongside src/backends/apple_container/init/build.sh and NETWORK_BLOCK_INIT_IMAGE in cli.rs. The wrapper runs build.sh but ignores the verified image it reports, then exports this separate literal; after a version bump, a missed update here could either fail qualification or silently exercise an older locally-cached image while production trusts the new tag/digest. Could build.sh expose the canonical tag in a sourceable form (or print it for this wrapper to capture) so the qualification and production invariants cannot drift?
📖 Description
Adds the samples and local qualification layer for the experimental Apple
Container one-shot backend introduced by #972.
0.8.0-alphaconfigurations;concurrency, network isolation, firewall tamper resistance, and hard-exit
recovery;
the pinned MXC init image before qualification;
cleanup uncovered by the qualification suite.
The Apple Container qualification remains local-only and does not add a CI
workflow.
🔗 References
🔍 Validation
apple_container_commonunit tests.mxc-exec-mac.warnings denied.
✅ Checklist
Cargo.lock, thedependency-feed-checkcheck passes (see docs/pull-requests.md)📋 Issue Type
GitHub Actions runs the PR validation build automatically. The ADO pipeline
(
MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity withthe GitHub Actions build; it runs on merge to
main, and Microsoft reviewerswith write access can trigger it on a PR with
/azp run.Microsoft Reviewers: Open in CodeFlow