[image-spec]: push nix images from remote builders#55
[image-spec]: push nix images from remote builders#55jld-adriano wants to merge 7 commits intomasterfrom
Conversation
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
Tested the remote Nix push flow end-to-end from shell against the monorepo integration path. Full report: https://app.devin.ai/attachments/61e7f83b-021e-403d-a67a-266642815b9a/test-report.md Escalation: cleanup of temporary ECR tag Remote builder behavior
Integration checks
Notes: shell-only testing, so no recording. Session: https://app.devin.ai/sessions/1fe549f1391845c0b09626d9be9223be |
|
Kitchen Sink copy of the test report: https://kitchen-sink.exa.ai/content-host/view/remote-nix-push-test-report-b367ac01 |
Tracking issue
Related to exa-labs/monorepo#29166
Why are the changes needed?
ImageSpec(nix=True)can use remote Nix builders for derivation builds, but the final nix2container push previously ran from the local orchestrator. Cold image builds then copied the layer closure back to the local runner before uploading to ECR.What changes were proposed in this pull request?
NIX_CONFIG, nix.conf machine-file references, or Flytekit-specific overrides.packages.$system.push-to-ecrinto that remote store with--store ssh-ng://... --builders "", then SSH to the same builder and run the push there.ssh-key=values to local key paths before invokingnix build --store.docker.copyTofallback when no matching remote builder is configured orFLYTEKIT_NIX_REMOTE_PUSH=0is set.How was this patch tested?
uv run --frozen --with ruff ruff check --fix flytekit/image_spec/default_builder.py tests/flytekit/unit/core/image_spec/test_default_builder.py uv run --frozen --with pytest --with hypothesis pytest tests/flytekit/unit/core/image_spec/test_default_builder.py -q -k 'nix_remote or parse_nix or configured_nix or store_uri or remote_nix or select_nix'Setup process
No extra setup.
Screenshots
N/A
Check all the applicable boxes
Related PRs
Docs link
N/A
Link to Devin session: https://app.devin.ai/sessions/1fe549f1391845c0b09626d9be9223be
Requested by: @jld-adriano