-
Notifications
You must be signed in to change notification settings - Fork 431
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
PublicIP resources should not PUT on each AzureCluster reconcile #1692
Comments
I'll see if this can be handled as part of the sync to async migration in #1716 or else migrate as is. I'll check the code and see the difference in effort with and without the bug fix |
@devigned I was just trying out the PUT API multiple times with same request body to see the behavior. I see that the public IP (I tried IPv6) is not affected. What's the aim of this issue? To reduce the API calls to Azure when there's no change? and to also avoid PUT request which is usually meant to do updates (generally by overwrites)? Or is there any other aim / extra aim for this issue? If it's only about avoiding unnecessary PUT API calls, how do we plan to do it? Currently I see there's no GET API call in |
Maybe we should also talk about what kind of updates are allowed for Public IPs. I mean, looking at some of the validations being done here by using the webhook, looks like there's not much we can change for anything related to Public IPs So, do we expect any kind of updates with respect to Public IPs in the form of Public IP Spec? If not, we can completely ignore the update of Public IP if it already exists. I'm still checking code what kind of fields we might expect to feasibly change |
Great questions, @karuppiah7890. The goal here is to minimize "writes" (mutations) to the Azure API. Azure APIs have lower throttling limits for writes than for reads, particularly reads that GET by resource ID. For any resource, we should be able to GET from Azure, compare the state in Azure, then only mutate state in Azure if the desired state in K8s is different than the state in Azure. |
Makes sense @devigned 👍 |
/unassign We realized in #1791 that there might also be a bug associated with this behavior: since we update the public IP when it already exists, it means we will also update an IP that was pre-created by the user and thus add the CAPZ managed tags to it which would cause it to be deleted later on when deleting the cluster because CAPZ would see it as "managed". |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close |
@k8s-triage-robot: Closing this issue. In response to this:
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/test-infra repository. |
/reopen |
@CecileRobertMichon: Reopened this issue. In response to this:
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/test-infra repository. |
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /close |
@k8s-triage-robot: Closing this issue. In response to this:
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/test-infra repository. |
/kind bug
[Before submitting an issue, have you checked the Troubleshooting Guide?]
What steps did you take and what happened:
When reconciling an
AzureCluster
each reconcile loop will cause a PUT for each PublicIP resource.What did you expect to happen:
PublicIP resources should only be mutated with a PUT if the desired state has changed.
/assign @CecileRobertMichon
The text was updated successfully, but these errors were encountered: