How to categorize this issue?
/area robustness
/kind enhancement
/priority 3
What would you like to be added:
CreateMachine() to have separate steps, where in one step we will call the actual CreateMachine() function to create the VM on cloudprovider and the other to IntializeMachine() where initialization of VM can be done.
Why is this needed:
By having separate steps, we can keep retrying initialization without relying on the GetMachineStatusResponse which does static checks to identify whether initialization is done or not and is provider dependent. If the number of operations for initialization increase, we would have to check each of those to identify whether initialization is complete or not.
This is also needed if for openstack we decide to take some code out of existing CreateMachine into InitializeMachine where CreateMachine is only responsible for creating the Server on cloudprovider and InitializeMachine will patch the ports, extract InternalIPs, etc. then we have an easy deterministic way to identify whether initialization is done or not.
How to categorize this issue?
/area robustness
/kind enhancement
/priority 3
What would you like to be added:
CreateMachine()to have separate steps, where in one step we will call the actualCreateMachine()function to create the VM on cloudprovider and the other toIntializeMachine()where initialization of VM can be done.Why is this needed:
By having separate steps, we can keep retrying initialization without relying on the
GetMachineStatusResponsewhich does static checks to identify whether initialization is done or not and is provider dependent. If the number of operations for initialization increase, we would have to check each of those to identify whether initialization is complete or not.This is also needed if for openstack we decide to take some code out of existing
CreateMachineintoInitializeMachinewhereCreateMachineis only responsible for creating theServeron cloudprovider andInitializeMachinewill patch the ports, extractInternalIPs, etc. then we have an easy deterministic way to identify whether initialization is done or not.