If the deletion of a node which is the api endpoint server is executed the whole clusters fails
Expected Behaviour
When the API endpoint is deleted, the diff functions should detect this edge case and handle it appropriately by selecting a new API endpoint node from the same node pool, or from a different node pool if there are no more nodes to choose from.
Steps To Reproduce
Autoscaler selects nodes to delete (not necessarily from the end of the nodepool), and if it lands on the API endpoint, it can destroy the whole cluster. this should be handled not only in the updateNodePool function that the autoscaler calls, but also in the Diff function that determines which steps to perform.
Current Behaviour
If the deletion of a node which is the api endpoint server is executed the whole clusters fails
Expected Behaviour
When the API endpoint is deleted, the diff functions should detect this edge case and handle it appropriately by selecting a new API endpoint node from the same node pool, or from a different node pool if there are no more nodes to choose from.
Steps To Reproduce
Autoscaler selects nodes to delete (not necessarily from the end of the nodepool), and if it lands on the API endpoint, it can destroy the whole cluster. this should be handled not only in the updateNodePool function that the autoscaler calls, but also in the Diff function that determines which steps to perform.