gardener/machine-controller-manager

Machine Update: Stage 1: Introduce InitializeMachine to Driver interface

unmarshall opened this issue · 4 comments

How to categorize this issue?

/area control-plane
/kind enhancement
/priority 3

What would you like to be added:
Currently Driver implemented by all providers does not have a way to initialize a machine after creation. We now have two use cases for which InitializeMachine is now a requirement:

  1. gardener/machine-controller-manager-provider-aws#128 - assigns IPV6 addresses to the instance post creation of the instance.
  2. gardener/machine-controller-manager-provider-aws#39 - enable/disable source/destination check on an instance.

CreateMachine should be an atomic operation and should only do one thing - create a new machine. Issue#comment highlights this requirement. We have already broken the contract of CreateMachine once (see 2 above) and as a consequence also broken the contract of GetMachineStatus (see 2 above).

Why is this needed:
There is a need to introduce a new method InitializeMachine which only does a one-time update of an existing instance. Changes that are done in (1) and (2) above should be moved to this new method.

There is already an issue open for this #635 , shall we close this one and update the other, as it has more links and context attached to it ?

The arguments for UpdateMachine() depends on the proposal for #750

This should be closed as there is already a separate issue #871.

The UpdateMachine machine meant for Stage-2 is at: #635