Deploying partition image with localboot needs to be tested in the CI
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
Fix Released
|
High
|
Vasyl Saienko |
Bug Description
While local-booting partition images is supported by ironic, currently this feature is not tested anywhere on upstream CI.
Enabling such testing is even more important as we plan to switch default boot option from 'netboot' to 'local' in some future.
The problem is that using a standard cloud image (like ubuntu ones) will significantly increase test time - image has to be rebuilt with dib and uploaded to glance, and whole deployment will take longer, plus virtual BMs need more RAM, ~768MB with tinyipa deploy ramdisk.
On the other hand, while the standard cirros image used in tests actually has grub as bootloader, it does not has it "installed" in the root partition, only in MBR plus menu/config files needed to boot in the root partition.
Proposed path to enable testing partition images with local boot is the following:
1) introduce and enable handling of special glance image property "has_grub": <bool> (default True), or 'no_grub' tag
a) if image is declared/understood to have grub installed inside - do what we are doing now
b) if image is declared to not have grub installed - use grub pre-installed in the deploy ramdisk
c) this will require changes to
- IPA code that installs the bootloader
- ironic code that calls into IPA to install bootloader
- imagebuild scripts for deploy ramdisk to include grub (for tinyipa only)
2) before running tests:
a) upload standard cirros-*-rootfs image to glance (the default cirros-*-uec image is blank) as ami
- default cirros-*-uec kernel and ramdisk can be re-used as aki and ari as they are the same
b) set image properties/tags as outlined above to declare image as not having grub installed
c) set default boot option to 'local' in ironic config
d) this will require adding new toggles and logic to ironic's devstack plugin
3) add an experimental and then non-voting job that tests this feature, at least with agent_ipmitool driver. Move it to voting once proven stable enough.
Alternatively to 1) we could avoid relying on image properties/tags and always first try to find grub commands in the user image (and use them from 'chroot'), then if not found in user image try to find them in deploy ramdisk (and use them w/o chroot), and only if not found anywhere fail.
summary: |
- deploying partiton image with localboot needs to be tested on gates + Deploying partition image with localboot needs to be tested in the CI |
Changed in ironic: | |
status: | New → Triaged |
importance: | Undecided → High |
Changed in ironic: | |
assignee: | nobody → Vasyl Saienko (vsaienko) |
status: | Triaged → In Progress |
Changed in ironic: | |
status: | Triaged → In Progress |
Changed in ironic: | |
status: | In Progress → Fix Released |
This seems duplicated with: https:/ /bugs.launchpad .net/ironic/ +bug/1633072