github.com/Azure/aad-pod-identity@v1.8.17/pkg/cloudprovider/truncate.go (about)

     1  package cloudprovider
     2  
     3  import (
     4  	"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
     5  )
     6  
     7  const (
     8  	maxIdentitiesCount = 150
     9  )
    10  
    11  // truncateVMIdentities truncates a given list of vm identities to maxIdentitiesCount and returns any extra identities.
    12  func truncateVMIdentities(ids map[string]*compute.VirtualMachineIdentityUserAssignedIdentitiesValue) (map[string]*compute.VirtualMachineIdentityUserAssignedIdentitiesValue, map[string]*compute.VirtualMachineIdentityUserAssignedIdentitiesValue) {
    13  	rest := make(map[string]*compute.VirtualMachineIdentityUserAssignedIdentitiesValue)
    14  	i := 0
    15  	for k, v := range ids {
    16  		if i >= maxIdentitiesCount {
    17  			rest[k] = v
    18  			delete(ids, k)
    19  		}
    20  		i++
    21  	}
    22  
    23  	return ids, rest
    24  }
    25  
    26  // truncateVMSSIdentities truncates a given list of vmss identities to maxIdentitiesCount and returns any extra identities.
    27  func truncateVMSSIdentities(ids map[string]*compute.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue) (map[string]*compute.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue, map[string]*compute.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue) {
    28  	rest := make(map[string]*compute.VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue)
    29  	i := 0
    30  	for k, v := range ids {
    31  		if i >= maxIdentitiesCount {
    32  			rest[k] = v
    33  			delete(ids, k)
    34  		}
    35  		i++
    36  	}
    37  
    38  	return ids, rest
    39  }