Skip to content

stages/ignition: parametrize the path to boot#2149

Merged
achilleas-k merged 1 commit intoosbuild:mainfrom
jbtrystram:parametrize_ignition
Jul 28, 2025
Merged

stages/ignition: parametrize the path to boot#2149
achilleas-k merged 1 commit intoosbuild:mainfrom
jbtrystram:parametrize_ignition

Conversation

@jbtrystram
Copy link
Contributor

Allow passing a mount to specify where to write the igntion.firstboot file.
This keeps the default tree:///boot value to not break existing stages.

@jbtrystram jbtrystram requested a review from a team as a code owner July 17, 2025 14:04
@jbtrystram jbtrystram requested review from achilleas-k, croissanne and mvo5 and removed request for a team July 17, 2025 14:04
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 17, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].

[1] bootc-dev/bootc#1410
Requires osbuild/osbuild#2149
achilleas-k
achilleas-k previously approved these changes Jul 17, 2025
Copy link
Member

@achilleas-k achilleas-k left a comment

Choose a reason for hiding this comment

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

Thanks!

supakeen
supakeen previously approved these changes Jul 17, 2025
@supakeen
Copy link
Member

Will need linter appeasement.

@dustymabe
Copy link
Contributor

Can we hold this for now. I'd like to play around with it along with coreos/coreos-assembler#4224 first before we merge.

@jbtrystram
Copy link
Contributor Author

Can we hold this for now. I'd like to play around with it along with coreos/coreos-assembler#4224 first before we merge.

FYI I made an fcos build with this but without the cosa changes and it was just as expected.
But I will happily let you double check, better safe than sorry

@dustymabe
Copy link
Contributor

LGTM - seems reasonable enough

dustymabe
dustymabe previously approved these changes Jul 19, 2025
@jbtrystram jbtrystram dismissed stale reviews from dustymabe, supakeen, and achilleas-k via dd776d6 July 21, 2025 09:56
@jbtrystram jbtrystram force-pushed the parametrize_ignition branch from e37bd5d to dd776d6 Compare July 21, 2025 09:56
@jbtrystram
Copy link
Contributor Author

Updated to appease the linter :)

@jbtrystram
Copy link
Contributor Author

@achilleas-k @supakeen The CI failure looks unrelated. Any blocking reason to merge this ?

@supakeen
Copy link
Member

supakeen commented Jul 25, 2025

@achilleas-k @supakeen The CI failure looks unrelated. Any blocking reason to merge this ?

It indeed seems unrelated, I've rebased this PR and I will keep retrying CI until it passes so we can merge this.

supakeen
supakeen previously approved these changes Jul 25, 2025
@supakeen supakeen force-pushed the parametrize_ignition branch from dd776d6 to 3448f87 Compare July 25, 2025 09:34
Copy link
Contributor

@mvo5 mvo5 left a comment

Choose a reason for hiding this comment

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

This looks good, one tiny suggestion about consistency with the other stages but not a blocker.

Allow passing a mount to specify where to write the igntion.firstboot
file.
This keeps the default `tree:///` value to not break existing stages.
@jbtrystram jbtrystram force-pushed the parametrize_ignition branch from a6159d1 to 9d06445 Compare July 28, 2025 10:27
@jbtrystram jbtrystram requested review from mvo5 and supakeen July 28, 2025 16:58
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].

[1] bootc-dev/bootc#1410
Requires osbuild/osbuild#2149
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].

[1] bootc-dev/bootc#1410
Requires osbuild/osbuild#2149
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].

[1] bootc-dev/bootc#1410
Requires osbuild/osbuild#2149
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].

[1] bootc-dev/bootc#1410
Requires osbuild/osbuild#2149
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jul 30, 2025
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Aug 28, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].

[1] bootc-dev/bootc#1410
Requires osbuild/osbuild#2149
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Aug 28, 2025
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Aug 28, 2025
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Aug 28, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Sep 8, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Sep 8, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Oct 27, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Oct 28, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Oct 28, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Oct 29, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Dec 2, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Dec 3, 2025
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Jan 14, 2026
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Feb 16, 2026
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

Right now this requires to use the image as the buildroot so this
requires python (for osbuild). This is tracked in [1].
As we have python in rawhide now I duplicated the manifest and added a
switch in the osbuild wrapper script.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/osbuild-images that referenced this pull request Feb 26, 2026
In osbuild/osbuild#2149 I added support for
specifying the target directory to create the `ignition.firstboot` stamp.
This is required because `bootc install to-filesystem` wants an empty
/boot FS, so we need to run the stage after.
jbtrystram added a commit to jbtrystram/osbuild-images that referenced this pull request Feb 27, 2026
osbuild/osbuild#2149 added support for
specifying the target directory to create the `ignition.firstboot` stamp.
This is required because `bootc install to-filesystem` wants an empty
/boot FS, so we need to run the stage after.

We reuse the bootupd mounts generator. We really only need
/boot, so bootupd is probably a bit overkill but does the job. Note that
we cannot reuse the existing mounts here because the `ostree` generated
mounts are shadowing /boot so the file end up in the wrong place.

Co-authored-by: Simon de Vlieger <cmdr@supakeen.com>
jbtrystram added a commit to jbtrystram/osbuild-images that referenced this pull request Feb 27, 2026
This allow setting a `Firstboot.Ignition.Empty` boolean to inject
the igntition firstboot stage[1] after the container is deployed.

Note that we specify the target directory to create the
`ignition.firstboot` stamp, as introduced in [2].
This is required because `bootc install to-filesystem` wants an empty
/boot FS, so we need to run the stage after.

We reuse the bootupd mounts generator. We really only need
/boot, so bootupd is probably a bit overkill but does the job.
We cannot reuse the existing mounts here because the `ostree` generated
mounts are shadowing /boot so the file end up in the wrong place.

Requires osbuild/blueprint#46
[1] https://github.com/osbuild/osbuild/blob/main/stages/org.osbuild.ignition
[2] osbuild/osbuild#2149

Signed-off-by: jbtrystram <jbtrystram@redhat.com>
Co-authored-by: Simon de Vlieger <cmdr@supakeen.com>
github-merge-queue bot pushed a commit to osbuild/images that referenced this pull request Feb 27, 2026
This allow setting a `Firstboot.Ignition.Empty` boolean to inject
the igntition firstboot stage[1] after the container is deployed.

Note that we specify the target directory to create the
`ignition.firstboot` stamp, as introduced in [2].
This is required because `bootc install to-filesystem` wants an empty
/boot FS, so we need to run the stage after.

We reuse the bootupd mounts generator. We really only need
/boot, so bootupd is probably a bit overkill but does the job.
We cannot reuse the existing mounts here because the `ostree` generated
mounts are shadowing /boot so the file end up in the wrong place.

Requires osbuild/blueprint#46
[1] https://github.com/osbuild/osbuild/blob/main/stages/org.osbuild.ignition
[2] osbuild/osbuild#2149

Signed-off-by: jbtrystram <jbtrystram@redhat.com>
Co-authored-by: Simon de Vlieger <cmdr@supakeen.com>
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Mar 2, 2026
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Mar 2, 2026
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

We can keep the manifest duplicated until we are confident to roll this
to all streams.

[1] bootc-dev/bootc#1410

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152
bootc-dev/bootc#1978
bootc-dev/bootc#1909

All of which have landed in osbuild-159 and bootc 1.6
jbtrystram added a commit to jbtrystram/coreos-assembler that referenced this pull request Mar 2, 2026
Instead of deploying the container to the tree then copy all the contents
to the disk image, use bootc to directly manage the installation to the
target filesystems.

We can keep the manifest duplicated until we are confident to roll this
to all streams or move to image-builder.

Requires:
bootc-dev/bootc#1460
bootc-dev/bootc#1451
osbuild/osbuild#2149
osbuild/osbuild#2152
bootc-dev/bootc#1978
bootc-dev/bootc#1909
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants