-
Notifications
You must be signed in to change notification settings - Fork 427
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MachinePool always update vmssState #5292
base: main
Are you sure you want to change the base?
Conversation
Updates ScaleSets service to always update the scope's vmss state with the latest data. Previously, a long running operation would cause the vmssState to not be updated and delayed creation of AzureMachinePoolMachines until much later when that long running operation completed. This change avoids this and updates the vmssState to what is retrieved from the API at all times. The call does not make more API requests because the VMSS GET request was done anyway but its result ignored.
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Hi @mweibel. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
@@ -958,9 +958,9 @@ func (m *MachinePoolScope) HasReplicasExternallyManaged(_ context.Context) bool | |||
} | |||
|
|||
// ReconcileReplicas ensures MachinePool replicas match VMSS capacity if replicas are externally managed by an autoscaler. | |||
func (m *MachinePoolScope) ReconcileReplicas(ctx context.Context, vmss *azure.VMSS) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI this is a small refactoring I noticed while looking through the tests - ReconcileReplicas
never returns an error and I adjusted its signature therefore.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change to the interface could be up for discussion, but it would have to ship with a minor release, we wouldn't be able to include this as a bug fix in a patch release. I assume we want to get this fix out, so I'd advise removing this change from this PR.
/ok-to-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/assign @nojnhuh
/lgtm cancel I think we want to classify this as a bug fix so we can backport, in which case we'll want to remove the updates to internal interfaces. |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5292 +/- ##
==========================================
- Coverage 52.57% 52.57% -0.01%
==========================================
Files 272 272
Lines 29408 29414 +6
==========================================
+ Hits 15460 15463 +3
- Misses 13150 13151 +1
- Partials 798 800 +2 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
What type of PR is this?
/kind bug
What this PR does / why we need it:
Updates ScaleSets service to always update the scope's vmss state with the latest data.
Previously, a long running operation would cause the vmssState to not be updated and delayed creation of AzureMachinePoolMachines until much later when that long running operation completed.
This change avoids this and updates the vmssState to what is retrieved from the API at all times.
The call does not make more API requests because the VMSS GET request was done anyway but its result ignored.
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Fixes kubernetes-sigs/cluster-api#9858 for CAPZ
Special notes for your reviewer:
Question: Should I add a test which tests this specific case with a long running operation? Is there any existing test which resembles this?
TODOs:
Release note: