cluster-api-provider-azure
cluster-api-provider-azure copied to clipboard
Retry-After data should be evaluated in Azure API responses
/kind feature
Describe the solution you'd like [A clear and concise description of what you want to happen.]
We want to ensure that we are taking a proper accounting of all Azure API request responses for the presence of Retry-After header data.
In particular, in azure/services/async/async.go there are code paths that communicate with Azure to determine whether or not a long-running operation is done. It appears we're doing so in a way that may not tell us that our subscription is currently throttled for HTTP GET against a particular API (HTTP 429 is the most common scenario for which Retry-After data is useful). For example:
https://github.com/kubernetes-sigs/cluster-api-provider-azure/blob/v1.5.0/azure/services/virtualnetworks/client.go#L123
If a certain part of our client connection code to Azure is not sensitive to HTTP 429 responses, then we will not be able to respond optimally to exit from throttling conditions.
Anything else you would like to add: [Miscellaneous information that will assist in solving the issue.]
Environment:
- cluster-api-provider-azure version:
- Kubernetes version: (use
kubectl version): - OS (e.g. from
/etc/os-release):
/assign
cc @CecileRobertMichon
/milestone v1.6
Fixed in https://github.com/kubernetes-sigs/cluster-api-provider-azure/pull/2688