stages/ignition: parametrize the path to boot#2149
Conversation
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
|
Will need linter appeasement. |
|
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. |
|
LGTM - seems reasonable enough |
dd776d6
e37bd5d to
dd776d6
Compare
|
Updated to appease the linter :) |
|
@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. |
dd776d6 to
3448f87
Compare
mvo5
left a comment
There was a problem hiding this comment.
This looks good, one tiny suggestion about consistency with the other stages but not a blocker.
3448f87 to
a6159d1
Compare
Allow passing a mount to specify where to write the igntion.firstboot file. This keeps the default `tree:///` value to not break existing stages.
a6159d1 to
9d06445
Compare
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
Theses are patch from the following PRs: osbuild/osbuild#2152 osbuild/osbuild#2149
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
Theses are patch from the following PRs: osbuild/osbuild#2152 osbuild/osbuild#2149
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
Theses are patch from the following PRs: osbuild/osbuild#2152 osbuild/osbuild#2149
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
Theses are patch from the following PRs: osbuild/osbuild#2152 osbuild/osbuild#2149
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
Theses are patch from the following PRs: osbuild/osbuild#2152 osbuild/osbuild#2149
Theses are patch from the following PRs: osbuild/osbuild#2152 osbuild/osbuild#2149
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
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
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
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
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
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
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
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
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
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
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
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.
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>
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>
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>
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
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
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
Allow passing a mount to specify where to write the igntion.firstboot file.
This keeps the default
tree:///bootvalue to not break existing stages.