This PR introduces an opinionated experimental CAPI IPAM provider resources management in the Elemental Operator:
the MachineRegistration Spec now has a network field to hold an optional reference to an InClusterIPPool resource (the user should create the InClusterIPPool and reference it in the MachineRegistration)
on registration, the elemental-operator creates an IPAddressClaim from the InClusterIPPool and references it in the MachineInventory it creates
the MachineInventory reconcyler references the IPAddress created by the IPAM provider in the new .Status.IPAddressRef as soon as it is available
the MachineInventory reconcyler returns the IPAddress on MachineInventory deletion by deleting the associated IPAddressClaim
Resource creation/destruction worked in a Rancher test environment with the CAPI IPAM provider installed.
The idea was than to extend the websocket protocol to allow the client to ask the assigned IP address: the elemental-operator server should check the MachineInventory.Status.IPAddressRef and if available get the info from there: this part is completely missing.
This PR introduces an opinionated experimental CAPI IPAM provider resources management in the Elemental Operator:
Resource creation/destruction worked in a Rancher test environment with the CAPI IPAM provider installed.
The idea was than to extend the websocket protocol to allow the client to ask the assigned IP address: the elemental-operator server should check the MachineInventory.Status.IPAddressRef and if available get the info from there: this part is completely missing.