in internal/controller/appconfigurationprovider_controller.go [352:371]
func (reconciler *AzureAppConfigurationProviderReconciler) requeueWhenGetSettingsFailed(
provider *acpv1.AzureAppConfigurationProvider,
err error) (ctrl.Result, error) {
requeueAfter := RequeueReconcileAfter
reconciler.logAndSetFailStatus(provider, err)
if errors.Is(err, &loader.ArgumentError{}) {
return reconcile.Result{Requeue: false}, nil
}
var respErr *azcore.ResponseError
if errors.As(err, &respErr) && respErr.StatusCode == 429 {
retryAfter, err := strconv.Atoi(respErr.RawResponse.Header.Get(HeaderRetryAfter))
if err == nil {
requeueAfter = time.Duration(retryAfter) * time.Second
klog.Errorf("Too many requests to the Azure App Configuration endpoint %s, retry the reconciliation after %d seconds", *provider.Spec.Endpoint, retryAfter)
} else {
klog.ErrorS(err, "Fail to parse the response header 'Retry-After'")
}
}
return reconcile.Result{Requeue: true, RequeueAfter: requeueAfter}, nil
}