diff --git a/pkg/cloudprovider/providers/azure/azure_client.go b/pkg/cloudprovider/providers/azure/azure_client.go index 22f80f0ccf..7870285348 100644 --- a/pkg/cloudprovider/providers/azure/azure_client.go +++ b/pkg/cloudprovider/providers/azure/azure_client.go @@ -91,7 +91,6 @@ type SecurityGroupsClient interface { type VirtualMachineScaleSetsClient interface { Get(ctx context.Context, resourceGroupName string, VMScaleSetName string) (result compute.VirtualMachineScaleSet, err error) List(ctx context.Context, resourceGroupName string) (result []compute.VirtualMachineScaleSet, err error) - UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error) } // VirtualMachineScaleSetVMsClient defines needed functions for azure compute.VirtualMachineScaleSetVMsClient @@ -881,30 +880,6 @@ func (az *azVirtualMachineScaleSetsClient) List(ctx context.Context, resourceGro return result, nil } -func (az *azVirtualMachineScaleSetsClient) UpdateInstances(ctx context.Context, resourceGroupName string, VMScaleSetName string, VMInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) (resp *http.Response, err error) { - /* Write rate limiting */ - if !az.rateLimiterWriter.TryAccept() { - err = createRateLimitErr(true, "VMSSUpdateInstances") - return - } - - klog.V(10).Infof("azVirtualMachineScaleSetsClient.UpdateInstances(%q,%q,%v): start", resourceGroupName, VMScaleSetName, VMInstanceIDs) - defer func() { - klog.V(10).Infof("azVirtualMachineScaleSetsClient.UpdateInstances(%q,%q,%v): end", resourceGroupName, VMScaleSetName, VMInstanceIDs) - }() - - mc := newMetricContext("vmss", "update_instances", resourceGroupName, az.client.SubscriptionID) - future, err := az.client.UpdateInstances(ctx, resourceGroupName, VMScaleSetName, VMInstanceIDs) - mc.Observe(err) - if err != nil { - return future.Response(), err - } - - err = future.WaitForCompletionRef(ctx, az.client.Client) - mc.Observe(err) - return future.Response(), err -} - // azVirtualMachineScaleSetVMsClient implements VirtualMachineScaleSetVMsClient. type azVirtualMachineScaleSetVMsClient struct { client compute.VirtualMachineScaleSetVMsClient diff --git a/pkg/cloudprovider/providers/azure/azure_vmss.go b/pkg/cloudprovider/providers/azure/azure_vmss.go index 8d101f7bdb..ae3aa81871 100644 --- a/pkg/cloudprovider/providers/azure/azure_vmss.go +++ b/pkg/cloudprovider/providers/azure/azure_vmss.go @@ -31,7 +31,6 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" utilerrors "k8s.io/apimachinery/pkg/util/errors" - "k8s.io/apimachinery/pkg/util/wait" cloudprovider "k8s.io/cloud-provider" "k8s.io/klog" ) @@ -580,55 +579,6 @@ func (ss *scaleSet) GetPrimaryInterface(nodeName string) (network.Interface, err return nic, nil } -// getScaleSet gets scale set with exponential backoff retry -func (ss *scaleSet) getScaleSet(service *v1.Service, name string) (compute.VirtualMachineScaleSet, bool, error) { - if ss.Config.shouldOmitCloudProviderBackoff() { - var result compute.VirtualMachineScaleSet - var exists bool - - cached, err := ss.vmssCache.Get(name) - if err != nil { - ss.Event(service, v1.EventTypeWarning, "GetVirtualMachineScaleSet", err.Error()) - klog.Errorf("backoff: failure for scale set %q, will retry,err=%v", name, err) - return result, false, nil - } - - if cached != nil { - exists = true - result = *(cached.(*compute.VirtualMachineScaleSet)) - } - - return result, exists, err - } - - return ss.getScaleSetWithRetry(service, name) -} - -// getScaleSetWithRetry gets scale set with exponential backoff retry -func (ss *scaleSet) getScaleSetWithRetry(service *v1.Service, name string) (compute.VirtualMachineScaleSet, bool, error) { - var result compute.VirtualMachineScaleSet - var exists bool - - err := wait.ExponentialBackoff(ss.requestBackoff(), func() (bool, error) { - cached, retryErr := ss.vmssCache.Get(name) - if retryErr != nil { - ss.Event(service, v1.EventTypeWarning, "GetVirtualMachineScaleSet", retryErr.Error()) - klog.Errorf("backoff: failure for scale set %q, will retry,err=%v", name, retryErr) - return false, nil - } - klog.V(4).Infof("backoff: success for scale set %q", name) - - if cached != nil { - exists = true - result = *(cached.(*compute.VirtualMachineScaleSet)) - } - - return true, nil - }) - - return result, exists, err -} - // getPrimarynetworkInterfaceConfiguration gets primary network interface configuration for scale set virtual machine. func (ss *scaleSet) getPrimarynetworkInterfaceConfiguration(networkConfigurations []compute.VirtualMachineScaleSetNetworkConfiguration, nodeName string) (*compute.VirtualMachineScaleSetNetworkConfiguration, error) { if len(networkConfigurations) == 1 { @@ -661,30 +611,6 @@ func (ss *scaleSet) getPrimaryIPConfigForScaleSet(config *compute.VirtualMachine return nil, fmt.Errorf("failed to find a primary IP configuration for the scale set VM %q", nodeName) } -// updateVMSSInstances invokes ss.VirtualMachineScaleSetsClient.UpdateInstances with exponential backoff retry. -func (ss *scaleSet) updateVMSSInstances(service *v1.Service, scaleSetName string, vmInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) error { - if ss.Config.shouldOmitCloudProviderBackoff() { - ctx, cancel := getContextWithCancel() - defer cancel() - resp, err := ss.VirtualMachineScaleSetsClient.UpdateInstances(ctx, ss.ResourceGroup, scaleSetName, vmInstanceIDs) - klog.V(10).Infof("VirtualMachineScaleSetsClient.UpdateInstances(%s): end", scaleSetName) - return ss.processHTTPResponse(service, "CreateOrUpdateVMSSInstance", resp, err) - } - - return ss.updateVMSSInstancesWithRetry(service, scaleSetName, vmInstanceIDs) -} - -// updateVMSSInstancesWithRetry invokes ss.VirtualMachineScaleSetsClient.UpdateInstances with exponential backoff retry. -func (ss *scaleSet) updateVMSSInstancesWithRetry(service *v1.Service, scaleSetName string, vmInstanceIDs compute.VirtualMachineScaleSetVMInstanceRequiredIDs) error { - return wait.ExponentialBackoff(ss.requestBackoff(), func() (bool, error) { - ctx, cancel := getContextWithCancel() - defer cancel() - resp, err := ss.VirtualMachineScaleSetsClient.UpdateInstances(ctx, ss.ResourceGroup, scaleSetName, vmInstanceIDs) - klog.V(10).Infof("VirtualMachineScaleSetsClient.UpdateInstances(%s): end", scaleSetName) - return ss.processHTTPRetryResponse(service, "CreateOrUpdateVMSSInstance", resp, err) - }) -} - // EnsureHostInPool ensures the given VM's Primary NIC's Primary IP Configuration is // participating in the specified LoadBalancer Backend Pool. func (ss *scaleSet) EnsureHostInPool(service *v1.Service, nodeName types.NodeName, backendPoolID string, vmSetName string, isInternal bool) error {