Red Hat Bugzilla – Bug 589318
Unable to re-provision a system with a bonded interface
Last modified: 2016-07-03 20:55:02 EDT
Description of problem:
If a system is currently operating with a bonded interface (ie bond0 with eth0/eth1 as slaves), it is not possible to re-provision that machine.
Version-Release number of selected component (if applicable):
spacewalk-backend-0.5.28-34 (if you need more rpm versions, lmk)
Steps to Reproduce:
1. Select a registered system to provision
2. Goto Provisioning -> Select the proper profile -> Advanced Configuration -> Select interface
There is a catch-22 situation here. anaconda does not support bonded interfaces per bug 240580. So even if the satellite were to grab the proper bond information, anaconda won't/can't bring up the bonded interface.
I've only tested this with static networking, but I see no reason this will work with dhcp. Kickstart should still fail.
So if a system has a bond, satellite will see the bond and the interfaces, but we don't know for 100% certainty which eth devices belong in the bond. I'm not sure how to get around this. We could try to guess, but that doesn't seem quite right.
Another option would be on the provisioning page (where you schedule a re-provisioning), add an option for bonding, where the user can select which interfaces they want bonded (with eth0 and eth1 selected by default). We'd also probably put an option for 'bonding options' and put a sane default.
Does that sound reasonable?
I believe a combination of the two ideas would work. I don't think we should guess.
The user should select the interface (ethX) to boot & install from (ksdevice). Then, if they wish to configure bonding, give them an option to select the bonded devices, and fill in a box for the bond options. Examples provided above the box, but not filled in.
*** Bug 689702 has been marked as a duplicate of this bug. ***
I have a set of changes pending that I believe will resolve this issue. The changes are available in the latest Spacewalk master code for review.
Essentially there is a new section in the "Advanced" page of kickstart configurations in the web UI. This new section allows users to set up bonded network interfaces on the post-kickstart system, whether or not they have bonded interfaces on the pre-kickstart system. Bond name, slave NICs, and bond options are all configurable.
If Satellite detects that the pre-kickstart system has a bonded interface, it attempts to autofill the fields with appropriate defaults to re-create the bond post-kickstart. The user can still of course change whatever he would like. Creating a bonded network interface post-kickstart is always off by default.
I believe this change satisfies the customer's needs / wants. If I have missed something let me know.