giantswarm / azure-operator

Manages Kubernetes clusters running in in a Giant Swarm installation on Microsoft Azure
https://giantswarm.io/
Apache License 2.0
30 stars 7 forks source link

Always reconciliate node pool size #1478

Closed whites11 closed 3 years ago

whites11 commented 3 years ago

Towards: https://github.com/giantswarm/giantswarm/issues/17793

currently if one changes the size of a fixed-size (non autoscaling) node pool via azure portal, azure operator ignores the operation.

For example.

NP1: min 3 max 3 I delete one replica via portal (NP1 has 2 replicas now)

At this point I'd expect azure operator to restore the correct size of 3, but it doesn't.

This PR addresses this use case and makes azure operator apply the deployment if the current number of replicas in the NP VMSS and the fixed size of the NP do not match.

whites11 commented 3 years ago

I think this change breaks the original design of template package in a way that might not be very maintainable in the long term, but I also do understand the problem at hand and given that this code will be eventually replaced by CAPZ, I give my stamp on this.

I completely agree Tuommy. The new parameter breaks the whole point, but what else can we do? The problem is that the arm deployment does not update when there are changes in the resources it created. The alternative would be to compare the size in the state handler directly, but it is tricky to get the value of parameters from there. If you have better ideas I'm more than happy to review it

whites11 commented 3 years ago

@tuommaki how about now?