When udev is populating the disk hierarchy, it can be a long time
before the 'by-label' is specifically ready.
Wait for that specific entry to come along before continuing to
check if there's an identity image.
This enables a more manual approach
to indicate the deployment server.
This carries the assumption that a
normal OS autonetwork config
will get the node to the right network.
This is one step toward enabling a scenario where the target is remote and the DHCP is not going to relay, but instead the deployment feeds the DHCP a confluent URL entry point to get going.
Using this parameter precludes:
-Enhanced NIC auto selection. If the OS auto-selection fails to
identify the correct interface, the profile will need nic name baked in.
-Auto-select deployment server from several. This will mean that any
HA will require IP takeover be externally handled
This is of course on top of the manual process of
indicating confluent in kernelargs.
Some profiles may have all disk support suppressed through blacklist until %pre comes
along to fix it. This avoids /dev/disk ever existing.
Wait up until 10 seconds before giving up. This gives disk subsystem a fair chance to
speed up and avoid a wait, with a fallback worst case of 10 seconds
8.3 implemented networkmanager to manage the install time
networking, but didn't correctly generate infiniband
network manager configuration.
Workaround by checking for infiniband install, and
then checking if the configuration is wrong, and
adding an infiniband section if missing.
In 8.3, they refactored how network configuration is
managed early in install. Fix by detecting the presence
of the nm-lib and calling it's function again to
re-read the new cmdline.
We want to have each iteration try not much.
But we also want to have a 'good' (primary network) match
supersede a less successful guess.
But we also want to keep guessing.
So the first 'vague' guess gets to run full hook.
If a future good guess happens, rerun the hook to update the data.
After going through tmp and etc, settle on /etc/confluent/
as the generally relevant directory when possible.
Additionally, move apikey and ifidx logic into apiclient where
possible