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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
馃尡 Test virtualmedia booting #1520
馃尡 Test virtualmedia booting #1520
Conversation
/test metal3-bmo-e2e-test-pull |
1 similar comment
/test metal3-bmo-e2e-test-pull |
930a313
to
2bed845
Compare
/metal3-bmo-e2e-test-pull |
/test metal3-bmo-e2e-test-pull |
Prow should also be able to help with commands... |
@lentzi90: The following commands are available to trigger required jobs:
The following commands are available to trigger optional jobs:
Use
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
2bed845
to
df39795
Compare
/test metal3-bmo-e2e-test-pull |
2 similar comments
/test metal3-bmo-e2e-test-pull |
/test metal3-bmo-e2e-test-pull |
f3d72d8
to
353da27
Compare
/test metal3-bmo-e2e-test-pull |
1 similar comment
/test metal3-bmo-e2e-test-pull |
353da27
to
4001d2f
Compare
4001d2f
to
958f216
Compare
/test metal3-bmo-e2e-test-pull |
40b5c90
to
6bf0ac2
Compare
/test metal3-bmo-e2e-test-pull |
// See https://docs.openstack.org/ironic/latest/admin/ramdisk-boot.html | ||
accessDetails, err := metal3bmc.NewAccessDetails(bmc.Address, false) | ||
Expect(err).NotTo(HaveOccurred()) | ||
if !accessDetails.SupportsISOPreprovisioningImage() { |
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.
I could use a second opinion here. Does it make sense to skip the test for ipmi and redfish? Is this the right thing to check?
Based on the docs I linked in the comment above, I think it isn't really worth it to test live-ISO in non-virtualmedia cases and the test currently fails for them. This is why I added the skip.
The test as it was before my changes here, booted a qcow2 image and set the disk format to live-ISO. I think that means it did a PXE boot and loaded it to RAM but I'm not completely sure.
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.
Technically, you can boot an ISO via iPXE. We added this to BMO purely accidentally, but when a validation was added that blocked it, some customers complained. Apparently, people use this in production.
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.
But would you say we need to test it? It seems we would need some special ISO to get something useful with iPXE.
This feature, when utilized with the ipxe boot_interface, will only allow a kernel and ramdisk to be booted from the supplied ISO file. Any additional contents, such as additional ramdisk contents or installer package files will be unavailable after the boot of the Operating System. Operators wishing to leverage this functionality for actions such as OS installation should explore use of the standard ramdisk deploy_interface along with the instance_info/kernel_append_params setting to pass arbitrary settings such as a mirror URL for the initial ramdisk to load data from. This is a limitation of iPXE and the overall boot process of the operating system where memory allocated by iPXE is released.
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.
IMHO it's probably not worth testing it at this stage
we could add a TODO for the future as a reminder in case this become more impactful, but I doubt it
# Build an ISO image with baked ssh key | ||
# See https://www.system-rescue.org/scripts/sysrescue-customize/ | ||
# We use the systemrescue ISO and their script for customizing it. |
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.
I'm open to suggestions here. Should we build the ISO in a different way? Use a different image to start from?
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.
In the Ironic CI, we use http://tinycorelinux.net/15.x/x86/release/Core-current.iso, but I don't know how to embed the SSH key there. If sysrescue does not take ages to build, it could be an option.
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.
I guess we could use that but without the ssh check. I didn't find an easy way to add the ssh key to it.
For now I think system-rescue will do fine and we do get a proper check that the live-ISO booted this way.
/cc @dtantsur @Rozzii |
@@ -68,8 +80,9 @@ var _ = Describe("Live-ISO", Label("required", "live-iso"), func() { | |||
URL: imageURL, | |||
DiskFormat: pointer.String("live-iso"), | |||
}, | |||
BootMode: metal3api.Legacy, | |||
BootMACAddress: bmc.BootMacAddress, | |||
BootMode: metal3api.Legacy, |
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.
Sigh.
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.
One thing at a time. I have added #1607 for it 馃槈
6bf0ac2
to
7b01349
Compare
/test metal3-bmo-e2e-test-pull |
1 similar comment
/test metal3-bmo-e2e-test-pull |
This makes the live-ISO test use a separate image so we can use an actual ISO. Also rename the BMCs config files to have the protocol instead of the emulator in the name and added a third file for redfish-virtualmedia. The live-ISO test will be skipped if booting with (i)PXE since it would require a special image and configuration to verify. Signed-off-by: Lennart Jern <lennart.jern@est.tech>
7b01349
to
81a5463
Compare
/test metal3-bmo-e2e-test-pull |
/test-centos-e2e-integration-main |
Good work! Not having been involved enough in BMO testing, someone else can flag it. LGTM. |
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
# See https://www.system-rescue.org/scripts/sysrescue-customize/ | ||
# We use the systemrescue ISO and their script for customizing it. | ||
pushd "${IMAGE_DIR}" | ||
wget -O sysrescue-customize https://gitlab.com/systemrescue/systemrescue-sources/-/raw/main/airootfs/usr/share/sysrescue/bin/sysrescue-customize?inline=false |
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.
nit: systemrescue-customize can probably be converted to a variable as it's used in more than a couple of places
// See https://docs.openstack.org/ironic/latest/admin/ramdisk-boot.html | ||
accessDetails, err := metal3bmc.NewAccessDetails(bmc.Address, false) | ||
Expect(err).NotTo(HaveOccurred()) | ||
if !accessDetails.SupportsISOPreprovisioningImage() { |
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.
IMHO it's probably not worth testing it at this stage
we could add a TODO for the future as a reminder in case this become more impactful, but I doubt it
/cc @kashifest |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: kashifest The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Fixes #1512