Skip to content

deploy: Pull bound images before staging via composefs mount - #2290

Open
cgwalters wants to merge 3 commits into
bootc-dev:mainfrom
cgwalters:lbi-pull-reliability
Open

deploy: Pull bound images before staging via composefs mount#2290
cgwalters wants to merge 3 commits into
bootc-dev:mainfrom
cgwalters:lbi-pull-reliability

Conversation

@cgwalters

Copy link
Copy Markdown
Collaborator

We were still staging a new bootloader entry even when we failed to pull a LBI. Switch to only doing an image pull and not a deployment, then pulling referenced LBIs from that.

Closes: #2013

@bootc-bot
bootc-bot Bot requested a review from gursewak1997 July 7, 2026 19:01
@gursewak1997

Copy link
Copy Markdown
Contributor

Needs cargo fmt

@cgwalters
cgwalters force-pushed the lbi-pull-reliability branch from d754a3e to 198b725 Compare July 8, 2026 11:51
@cgwalters cgwalters added the ci/tier-1 Run CI for tier-1 OS (centos-10) only label Jul 8, 2026
gursewak1997
gursewak1997 previously approved these changes Jul 8, 2026
jmarrero
jmarrero previously approved these changes Jul 9, 2026

@jmarrero jmarrero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@cgwalters
cgwalters added this pull request to the merge queue Jul 9, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 10, 2026
@cgwalters

Copy link
Copy Markdown
Collaborator Author

: error: Switching: Switching (ostree): Staging: Mounting ostree commit b579414cd3d4d034ac8c9377579de4033025dfefc637bfdab95aa5ec8b9ddb5b: composefs_fsmount: Block device required (os error 15)

Looks legit

…ck fallback

CentOS Stream 9 ships kernel 5.14, which cannot mount an erofs image
directly from a file descriptor. composefs-rs provides a `rhel9` feature
in composefs-ctl (and forwarded through bootc-initramfs-setup) that works
around this by loopifying the image file into a /dev/loopN block device
before mounting it.

Without this feature enabled at build time, bootc install on centos-9 with
the composefs backend fails with ENOTBLK ('Block device required', errno 15)
when the initramfs setup code tries to mount the composefs/erofs image.

Wire up the feature in two places:
- Makefile: extend CARGO_FEATURES_DEFAULT to also emit `rhel9` when
  building on a RHEL-like OS with VERSION_ID=9.
- bootc.spec: add a `rhel9` bcond gated on `%{?rhel} == 9` and pass
  it to all three cargo build invocations and to %make_install.

With the build fix in place, remove the ci.yml exclude that was
suppressing centos-9 + composefs testing in test-integration.

Closes: bootc-dev#1812

Assisted-by: AI
Signed-off-by: Colin Walters <walters@verbum.org>
We were still staging a new bootloader entry even when we
failed to pull a LBI. Switch to only doing an image pull
and not a deployment, then pulling referenced LBIs from that.

The "bound_images" progress subtask moves earlier in the
sequence accordingly, ahead of "deploying" instead of after
it, since the pull now happens before deploy() is called.

Closes: bootc-dev#2013

Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters
cgwalters force-pushed the lbi-pull-reliability branch from 40b03f3 to 74f6c22 Compare July 28, 2026 19:33
@cgwalters
cgwalters enabled auto-merge July 28, 2026 19:59
@cgwalters
cgwalters requested a review from jmarrero July 28, 2026 20:02
@cgwalters

Copy link
Copy Markdown
Collaborator Author

OK, this one should be good to go now

jmarrero
jmarrero previously approved these changes Jul 29, 2026
@cgwalters
cgwalters added this pull request to the merge queue Jul 29, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 29, 2026
@cgwalters

Copy link
Copy Markdown
Collaborator Author

Hmm, hitting #2340 on this on centos-9.

Bump to composefs-rs commit 5a227a01, which fixes creating tmpfiles
in the object store when O_TMPFILE is unsupported (e.g. under
fuse-overlayfs on centos-9). Fixes the ENOTSUP failure we were
hitting on centos-9 in this PR's CI.

Closes: bootc-dev#2340

Assisted-by: AI
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters
cgwalters force-pushed the lbi-pull-reliability branch from 8207128 to 74c96e9 Compare July 29, 2026 20:43
@cgwalters

Copy link
Copy Markdown
Collaborator Author

OK this rolls in the fix for that

@cgwalters
cgwalters requested a review from jmarrero July 29, 2026 20:44
@cgwalters cgwalters added ci/merge Run full CI suite (all OSes) — equivalent to merge queue and removed ci/tier-1 Run CI for tier-1 OS (centos-10) only labels Jul 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/merge Run full CI suite (all OSes) — equivalent to merge queue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Logically-bound images aren't reliably present

3 participants