Duplicate configdrive while DHCP-less ramdisk clean/redeploy
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ironic |
In Progress
|
High
|
Julia Kreger |
Bug Description
Hi!
I have Ironic Zed version and try to use DHCP-less ramdisk booting with network data from config drive.
I use simple-init element, and deployment works fine for me. It creates and boots target image with 4 partitions (BSP,ESP,OS and config drive).
After that, no other actions are possible with server - next boot of ironic-python-agent ISO gets 2 config-drives and fails to get correct one.
[root@server devuser]# blkid -t LABEL="config-2"
/dev/sr: UUID="2023-
/dev/nume8n1p4: UUID="2823-
"config-2" TYPE="is09660" PARTUUID=
This happens because simple-init (glean) uses the same LABEL for config-drive, as an openstack config-drive of target image.
No possible workaround found.
1. https:/
2. https:/
Changed in ironic: | |
status: | Triaged → In Progress |
Changed in ironic: | |
assignee: | nobody → Julia Kreger (juliaashleykreger) |
Changed in ironic: | |
status: | Fix Released → In Progress |
We've discussed this issue during and after our weekly meeting, and that's the solution we're leaning towards:
1) Modify Glean [1] to optionally accept a hint for the IPA's configdrive in a new kernel parameter, e.g. glean-configdri ve=LABEL= config- foo or glean-configdri ve=UUID= bar (note: I'd rather avoid committing to using labels in case we figure out how to use UUIDs).
2) Modify Ironic's ISO building process [2] to generate a random label, e.g. config-<something> and pass it to Glean. This is going to be a breaking change, so we need to add it behind a flag with the intention to make it the default later.
[1] https:/ /opendev. org/opendev/ glean/src/ branch/ master/ glean/init/ glean-early. sh#L32 /opendev. org/openstack/ ironic/ src/commit/ e4a5691d331c620 f1e21d761c7de95 e346f3effc/ ironic/ drivers/ modules/ image_utils. py#L425
[2] https:/