-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix s390x live ISO booting, enable Ignition embedding, enable ISO install tests #3283
Conversation
Requires: coreos/coreos-installer#1070 |
LGTM, |
The ci/prow/rhcos test doesn't seem to have run. Is there a way to force it to? |
To be clear, this is adding a new ignition info file for all architectures, but using it is only required for s390x, right? |
This implies that it doesn't work at all right now, is that correct? We have someone currently reporting an issue booting our s390x ISO that looks like this:
Is that roughly what we should expect with the current live iso? |
cc @apodvrat |
Right. To be more specific, it will be used by coreos-installer on all arches, but will gracefully fallback to assume
Ideally you'd check
It used to not work at all. The prep patches I've split out into #3284 makes it at least bootable. But those patches are not in 4.12 and earlier.
Yes, for 4.12 ISOs and earlier. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM generally!
This patch will allow users to embed Ignition configs in s390x ISOs. This narrows the live ISO gap a bit between s390x and other arches (but notably, ISO kargs support is still missing). It also crucially unblocks running live ISO tests. s390x does not support layered initrds, so to do this, we allocate space directly in the initramfs passed to `mk-s390img` for the Ignition config. We then create a new `/coreos/igninfo.json` file in the ISO containing the metadata on how to find the Ignition embed area. On !s390x, where layered initrds are supported, we point at `ignition.img`, which maintains current behaviour. On s390x, we point at the right offset of the reserved space in the `cdboot.img`. coreos-installer will look for this `igninfo.json` file and embed the Ignition config in the area to which it points.
Add `iso-live-login` which should already work. Now that we have Ignition embedding support in the s390x ISO, we can also test `iso-offline-install`. `iso-install` should also work but for consistency with other !x86_64 arches, we don't test it. The `mpath` variant is currently failing but should work. Keep it disabled for now so we don't introduce a failure that immediately has to be denylisted.
I want to create an s390x ISO fixture for testing in coreos-installer CI since Ignition embedding works differently than other arches.
d7f1758
to
6939044
Compare
Rebased and review comments addressed! |
Before merging this, we need to make sure coreos/coreos-installer#1070 (in coreos-installer v0.17.0) lands in FCOS |
That's only true for enabling tests. If desired, we could split the tests out into a followup PR. |
Hmm actually, it's not even true for that. |
Woo! Thanks @jlebon |
This patch series fixes the s390x live ISO so that it can successfully boot, then adds support for Ignition config embedding like on other arches, and then enables some ISO tests, which successfully pass:
I've split prep patches into a separate PR: #3284. The remaining two commits will stay here. The following is the commit message for the primary one:
This patch will allow users to embed Ignition configs in s390x ISOs.
This narrows the live ISO gap a bit between s390x and other arches (but
notably, ISO kargs support is still missing). It also crucially unblocks
running live ISO tests.
s390x does not support layered initrds, so to do this, we allocate space
directly in the initramfs passed to
mk-s390img
for the Ignitionconfig. We then create a new
/coreos/igninfo.json
file in the ISOcontaining the metadata on how to find the Ignition embed area. On
!s390x, where layered initrds are supported, we point at
ignition.img
,which maintains current behaviour. On s390x, we point at the right
offset of the reserved space in the
cdboot.img
.coreos-installer will look for this
igninfo.json
file and embed theIgnition config in the area to which it points.