feat: New features for bare-metal deployment#10545
Open
frankdavid wants to merge 3 commits into
Open
Conversation
frankdavid
commented
Jun 23, 2026
Contributor
- Support deploying a GuestOS upgrade image to the selected target boot alternative. Optionally enable wiping the corresponding var partition. Previously, only full GuestOS disk images could be deployed thereby overwriting all (including the data) partition.
- Support deploying a released HostOS/GuestOS version by specifying the 40-char git hash.
- Some fixes, e.g. don't mount over the entire /opt/ic/bin library (this led to some issues previously), only the necessary binaries/scripts.
- Support deploying a GuestOS *upgrade image* to the selected target boot alternative. Optionally enable wiping the corresponding var partition. Previously, only full GuestOS disk images could be deployed thereby overwriting all (including the data) partition. - Support deploying a released HostOS/GuestOS version by specifying the 40-char git hash. - Some fixes, e.g. don't mount over the entire /opt/ic/bin library (this led to some issues previously), only the necessary binaries/scripts.
|
✅ No security or compliance issues detected. Reviewed everything up to 307eac5. Security Overview
Detected Code Changes
|
basvandijk
approved these changes
Jun 23, 2026
basvandijk
left a comment
Collaborator
There was a problem hiding this comment.
rs/tests/driver/src/driver/bootstrap.rs LGTM
Contributor
There was a problem hiding this comment.
Pull request overview
This PR enhances the bare-metal deployment tooling to support more flexible HostOS/GuestOS rollout scenarios, including deploying GuestOS upgrade images to a specific A/B boot alternative and downloading released images by git revision.
Changes:
- Introduce a richer GuestOS deployment configuration supporting “full” vs “upgrade” modes (with target boot alternative + optional var wipe).
- Extend the
bare_metal_deploymentCLI to accept environment specs or 40-char git hashes (download fromdownload.dfinity.systems) where supported. - Update
reload_icos.shstaging/mounting to avoid bind-mounting the entire/opt/ic/binand add GuestOS upgrade-image flow.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
rs/tests/driver/src/driver/bootstrap.rs |
Adapts bare-metal test bootstrap to the new GuestOS deployment config API. |
rs/ic_os/dev_test_tools/bare_metal_deployment/src/main.rs |
Adds CLI flags and image resolution logic for GuestOS mode + released-image-by-hash support. |
rs/ic_os/dev_test_tools/bare_metal_deployment/src/deploy.rs |
Adds GuestOsDeploymentConfig / mode handling and wires new reload_icos flags. |
rs/ic_os/dev_test_tools/bare_metal_deployment/Cargo.toml |
Adds grub dependency for BootAlternative. |
rs/ic_os/dev_test_tools/bare_metal_deployment/BUILD.bazel |
Adds grub dep and introduces rust_test targets for the tool crates. |
ic-os/testing/reload_icos.sh |
Implements GuestOS upgrade-image deployment and stages only required /opt/ic/bin files. |
ic-os/testing/BUILD.bazel |
Updates the packaged component set for reload_icos_cmd and documents the sync requirement. |
Cargo.lock |
Records the added grub dependency. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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.