mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
Merge pull request #88319 from ZeroMagic/azuredisk_fake_test
Export Azure Fake Cloud for reusing
This commit is contained in:
commit
8fb66ae965
@ -120,7 +120,6 @@ go_test(
|
|||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
"//staging/src/k8s.io/client-go/kubernetes/fake:go_default_library",
|
||||||
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
|
||||||
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
"//staging/src/k8s.io/cloud-provider:go_default_library",
|
||||||
"//staging/src/k8s.io/cloud-provider/service/helpers:go_default_library",
|
"//staging/src/k8s.io/cloud-provider/service/helpers:go_default_library",
|
||||||
"//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",
|
"//staging/src/k8s.io/legacy-cloud-providers/azure/auth:go_default_library",
|
||||||
|
@ -63,7 +63,7 @@ func TestCommonAttachDisk(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
common := &controllerCommon{
|
common := &controllerCommon{
|
||||||
location: testCloud.Location,
|
location: testCloud.Location,
|
||||||
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
||||||
@ -112,7 +112,7 @@ func TestCommonDetachDisk(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
common := &controllerCommon{
|
common := &controllerCommon{
|
||||||
location: testCloud.Location,
|
location: testCloud.Location,
|
||||||
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
||||||
@ -153,7 +153,7 @@ func TestGetDiskLun(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
common := &controllerCommon{
|
common := &controllerCommon{
|
||||||
location: testCloud.Location,
|
location: testCloud.Location,
|
||||||
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
||||||
@ -192,7 +192,7 @@ func TestGetNextDiskLun(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
common := &controllerCommon{
|
common := &controllerCommon{
|
||||||
location: testCloud.Location,
|
location: testCloud.Location,
|
||||||
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
||||||
@ -234,7 +234,7 @@ func TestDisksAreAttached(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
common := &controllerCommon{
|
common := &controllerCommon{
|
||||||
location: testCloud.Location,
|
location: testCloud.Location,
|
||||||
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
storageEndpointSuffix: testCloud.Environment.StorageEndpointSuffix,
|
||||||
|
@ -53,7 +53,7 @@ func TestStandardAttachDisk(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
vmSet := testCloud.vmSet
|
vmSet := testCloud.vmSet
|
||||||
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ func TestStandardDetachDisk(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
vmSet := testCloud.vmSet
|
vmSet := testCloud.vmSet
|
||||||
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
||||||
|
|
||||||
@ -140,7 +140,7 @@ func TestGetDataDisks(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := getTestCloud()
|
testCloud := GetTestCloud()
|
||||||
vmSet := testCloud.vmSet
|
vmSet := testCloud.vmSet
|
||||||
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
||||||
|
|
||||||
|
@ -34,7 +34,10 @@ import (
|
|||||||
|
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
"k8s.io/client-go/tools/record"
|
||||||
cloudprovider "k8s.io/cloud-provider"
|
cloudprovider "k8s.io/cloud-provider"
|
||||||
|
"k8s.io/legacy-cloud-providers/azure/auth"
|
||||||
azcache "k8s.io/legacy-cloud-providers/azure/cache"
|
azcache "k8s.io/legacy-cloud-providers/azure/cache"
|
||||||
"k8s.io/legacy-cloud-providers/azure/retry"
|
"k8s.io/legacy-cloud-providers/azure/retry"
|
||||||
)
|
)
|
||||||
@ -875,6 +878,10 @@ func (fDC *fakeDisksClient) CreateOrUpdate(ctx context.Context, resourceGroupNam
|
|||||||
fDC.mutex.Lock()
|
fDC.mutex.Lock()
|
||||||
defer fDC.mutex.Unlock()
|
defer fDC.mutex.Unlock()
|
||||||
|
|
||||||
|
provisioningStateSucceeded := string(compute.ProvisioningStateSucceeded)
|
||||||
|
diskParameter.DiskProperties = &compute.DiskProperties{ProvisioningState: &provisioningStateSucceeded}
|
||||||
|
diskParameter.ID = &diskName
|
||||||
|
|
||||||
if _, ok := fDC.FakeStore[resourceGroupName]; !ok {
|
if _, ok := fDC.FakeStore[resourceGroupName]; !ok {
|
||||||
fDC.FakeStore[resourceGroupName] = make(map[string]compute.Disk)
|
fDC.FakeStore[resourceGroupName] = make(map[string]compute.Disk)
|
||||||
}
|
}
|
||||||
@ -991,3 +998,55 @@ func (f *fakeVMSet) GetDataDisks(nodeName types.NodeName, crt azcache.AzureCache
|
|||||||
func (f *fakeVMSet) GetPowerStatusByNodeName(name string) (string, error) {
|
func (f *fakeVMSet) GetPowerStatusByNodeName(name string) (string, error) {
|
||||||
return "", fmt.Errorf("unimplemented")
|
return "", fmt.Errorf("unimplemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetTestCloud returns a fake azure cloud for unit tests in Azure related CSI drivers
|
||||||
|
func GetTestCloud() (az *Cloud) {
|
||||||
|
az = &Cloud{
|
||||||
|
Config: Config{
|
||||||
|
AzureAuthConfig: auth.AzureAuthConfig{
|
||||||
|
TenantID: "tenant",
|
||||||
|
SubscriptionID: "subscription",
|
||||||
|
},
|
||||||
|
ResourceGroup: "rg",
|
||||||
|
VnetResourceGroup: "rg",
|
||||||
|
RouteTableResourceGroup: "rg",
|
||||||
|
SecurityGroupResourceGroup: "rg",
|
||||||
|
Location: "westus",
|
||||||
|
VnetName: "vnet",
|
||||||
|
SubnetName: "subnet",
|
||||||
|
SecurityGroupName: "nsg",
|
||||||
|
RouteTableName: "rt",
|
||||||
|
PrimaryAvailabilitySetName: "as",
|
||||||
|
MaximumLoadBalancerRuleCount: 250,
|
||||||
|
VMType: vmTypeStandard,
|
||||||
|
},
|
||||||
|
nodeZones: map[string]sets.String{},
|
||||||
|
nodeInformerSynced: func() bool { return true },
|
||||||
|
nodeResourceGroups: map[string]string{},
|
||||||
|
unmanagedNodes: sets.NewString(),
|
||||||
|
routeCIDRs: map[string]string{},
|
||||||
|
eventRecorder: &record.FakeRecorder{},
|
||||||
|
}
|
||||||
|
az.DisksClient = newFakeDisksClient()
|
||||||
|
az.InterfacesClient = newFakeAzureInterfacesClient()
|
||||||
|
az.LoadBalancerClient = newFakeAzureLBClient()
|
||||||
|
az.PublicIPAddressesClient = newFakeAzurePIPClient(az.Config.SubscriptionID)
|
||||||
|
az.RoutesClient = newFakeRoutesClient()
|
||||||
|
az.RouteTablesClient = newFakeRouteTablesClient()
|
||||||
|
az.SecurityGroupsClient = newFakeAzureNSGClient()
|
||||||
|
az.SubnetsClient = newFakeAzureSubnetsClient()
|
||||||
|
az.VirtualMachineScaleSetsClient = newFakeVirtualMachineScaleSetsClient()
|
||||||
|
az.VirtualMachineScaleSetVMsClient = newFakeVirtualMachineScaleSetVMsClient()
|
||||||
|
az.VirtualMachinesClient = newFakeAzureVirtualMachinesClient()
|
||||||
|
az.vmSet = newAvailabilitySet(az)
|
||||||
|
az.vmCache, _ = az.newVMCache()
|
||||||
|
az.lbCache, _ = az.newLBCache()
|
||||||
|
az.nsgCache, _ = az.newNSGCache()
|
||||||
|
az.rtCache, _ = az.newRouteTableCache()
|
||||||
|
|
||||||
|
common := &controllerCommon{cloud: az}
|
||||||
|
az.controllerCommon = common
|
||||||
|
az.ManagedDiskController = &ManagedDiskController{common: common}
|
||||||
|
|
||||||
|
return az
|
||||||
|
}
|
||||||
|
@ -82,7 +82,7 @@ func setTestVirtualMachines(c *Cloud, vmList map[string]string, isDataDisksFull
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestInstanceID(t *testing.T) {
|
func TestInstanceID(t *testing.T) {
|
||||||
cloud := getTestCloud()
|
cloud := GetTestCloud()
|
||||||
cloud.Config.UseInstanceMetadata = true
|
cloud.Config.UseInstanceMetadata = true
|
||||||
|
|
||||||
testcases := []struct {
|
testcases := []struct {
|
||||||
@ -215,7 +215,7 @@ func TestInstanceShutdownByProviderID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range testcases {
|
for _, test := range testcases {
|
||||||
cloud := getTestCloud()
|
cloud := GetTestCloud()
|
||||||
setTestVirtualMachines(cloud, test.vmList, false)
|
setTestVirtualMachines(cloud, test.vmList, false)
|
||||||
providerID := "azure://" + cloud.getStandardMachineID("subscription", "rg", test.nodeName)
|
providerID := "azure://" + cloud.getStandardMachineID("subscription", "rg", test.nodeName)
|
||||||
hasShutdown, err := cloud.InstanceShutdownByProviderID(context.Background(), providerID)
|
hasShutdown, err := cloud.InstanceShutdownByProviderID(context.Background(), providerID)
|
||||||
@ -236,7 +236,7 @@ func TestInstanceShutdownByProviderID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestNodeAddresses(t *testing.T) {
|
func TestNodeAddresses(t *testing.T) {
|
||||||
cloud := getTestCloud()
|
cloud := GetTestCloud()
|
||||||
cloud.Config.UseInstanceMetadata = true
|
cloud.Config.UseInstanceMetadata = true
|
||||||
metadataTemplate := `{"compute":{"name":"%s"},"network":{"interface":[{"ipv4":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]},"ipv6":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]}}]}}`
|
metadataTemplate := `{"compute":{"name":"%s"},"network":{"interface":[{"ipv4":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]},"ipv6":{"ipAddress":[{"privateIpAddress":"%s","publicIpAddress":"%s"}]}}]}}`
|
||||||
|
|
||||||
|
@ -378,7 +378,7 @@ func TestEnsureLoadBalancerDeleted(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
for i, c := range tests {
|
for i, c := range tests {
|
||||||
clusterResources := getClusterResources(az, vmCount, availabilitySetCount)
|
clusterResources := getClusterResources(az, vmCount, availabilitySetCount)
|
||||||
getTestSecurityGroup(az)
|
getTestSecurityGroup(az)
|
||||||
@ -488,7 +488,7 @@ func TestServiceOwnsPublicIP(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetPublicIPAddressResourceGroup(t *testing.T) {
|
func TestGetPublicIPAddressResourceGroup(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
for i, c := range []struct {
|
for i, c := range []struct {
|
||||||
desc string
|
desc string
|
||||||
@ -693,7 +693,7 @@ func TestGetServiceLoadBalancer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 3, 3)
|
clusterResources := getClusterResources(az, 3, 3)
|
||||||
|
|
||||||
for _, existingLB := range test.existingLBs {
|
for _, existingLB := range test.existingLBs {
|
||||||
@ -903,7 +903,7 @@ func TestIsFrontendIPChanged(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
err := az.SubnetsClient.CreateOrUpdate(context.TODO(), "rg", "vnet", "testSubnet", test.exsistingSubnet)
|
err := az.SubnetsClient.CreateOrUpdate(context.TODO(), "rg", "vnet", "testSubnet", test.exsistingSubnet)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("TestCase[%d] meets unexpected error: %v", i, err)
|
t.Fatalf("TestCase[%d] meets unexpected error: %v", i, err)
|
||||||
@ -960,7 +960,7 @@ func TestDeterminePublicIPName(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
||||||
service.Spec.LoadBalancerIP = test.loadBalancerIP
|
service.Spec.LoadBalancerIP = test.loadBalancerIP
|
||||||
for _, existingPIP := range test.exsistingPIPs {
|
for _, existingPIP := range test.exsistingPIPs {
|
||||||
@ -1117,7 +1117,7 @@ func TestReconcileLoadBalancerRule(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.Config.LoadBalancerSku = test.loadBalancerSku
|
az.Config.LoadBalancerSku = test.loadBalancerSku
|
||||||
probe, lbrule, err := az.reconcileLoadBalancerRule(&test.service, test.wantLb,
|
probe, lbrule, err := az.reconcileLoadBalancerRule(&test.service, test.wantLb,
|
||||||
"frontendIPConfigID", "backendPoolID", "lbname", to.Int32Ptr(0))
|
"frontendIPConfigID", "backendPoolID", "lbname", to.Int32Ptr(0))
|
||||||
@ -1547,7 +1547,7 @@ func TestReconcileLoadBalancer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.Config.LoadBalancerSku = test.loadBalancerSku
|
az.Config.LoadBalancerSku = test.loadBalancerSku
|
||||||
az.DisableOutboundSNAT = test.disableOutboundSnat
|
az.DisableOutboundSNAT = test.disableOutboundSnat
|
||||||
if test.preConfigLBType != "" {
|
if test.preConfigLBType != "" {
|
||||||
@ -1583,7 +1583,7 @@ func TestReconcileLoadBalancer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetServiceLoadBalancerStatus(t *testing.T) {
|
func TestGetServiceLoadBalancerStatus(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
||||||
internalService := getInternalTestService("test1", 80)
|
internalService := getInternalTestService("test1", 80)
|
||||||
|
|
||||||
@ -1804,7 +1804,7 @@ func TestReconcileSecurityGroup(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
for name, sg := range test.existingSgs {
|
for name, sg := range test.existingSgs {
|
||||||
err := az.SecurityGroupsClient.CreateOrUpdate(context.TODO(), "rg", name, sg, "")
|
err := az.SecurityGroupsClient.CreateOrUpdate(context.TODO(), "rg", name, sg, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -1852,7 +1852,7 @@ func TestSafeDeletePublicIP(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
err := az.PublicIPAddressesClient.CreateOrUpdate(context.TODO(), "rg", "pip1", network.PublicIPAddress{
|
err := az.PublicIPAddressesClient.CreateOrUpdate(context.TODO(), "rg", "pip1", network.PublicIPAddress{
|
||||||
Name: to.StringPtr("pip1"),
|
Name: to.StringPtr("pip1"),
|
||||||
PublicIPAddressPropertiesFormat: &network.PublicIPAddressPropertiesFormat{
|
PublicIPAddressPropertiesFormat: &network.PublicIPAddressPropertiesFormat{
|
||||||
@ -1971,7 +1971,7 @@ func TestReconcilePublicIP(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
||||||
service.Annotations = test.annotations
|
service.Annotations = test.annotations
|
||||||
for _, pip := range test.existingPIPs {
|
for _, pip := range test.existingPIPs {
|
||||||
@ -2082,7 +2082,7 @@ func TestEnsurePublicIPExists(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
||||||
for _, pip := range test.existingPIPs {
|
for _, pip := range test.existingPIPs {
|
||||||
err := az.PublicIPAddressesClient.CreateOrUpdate(context.TODO(), "rg", to.String(pip.Name), pip)
|
err := az.PublicIPAddressesClient.CreateOrUpdate(context.TODO(), "rg", to.String(pip.Name), pip)
|
||||||
@ -2134,7 +2134,7 @@ func TestShouldUpdateLoadBalancer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
service := getTestService("test1", v1.ProtocolTCP, nil, 80)
|
||||||
if test.lbHasDeletionTimestamp {
|
if test.lbHasDeletionTimestamp {
|
||||||
service.ObjectMeta.DeletionTimestamp = &metav1.Time{Time: time.Now()}
|
service.ObjectMeta.DeletionTimestamp = &metav1.Time{Time: time.Now()}
|
||||||
@ -2221,7 +2221,7 @@ func TestIsBackendPoolPreConfigured(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.Config.PreConfiguredBackendPoolLoadBalancerTypes = test.preConfiguredBackendPoolLoadBalancerTypes
|
az.Config.PreConfiguredBackendPoolLoadBalancerTypes = test.preConfiguredBackendPoolLoadBalancerTypes
|
||||||
var service v1.Service
|
var service v1.Service
|
||||||
if test.isInternalService {
|
if test.isInternalService {
|
||||||
|
@ -127,7 +127,7 @@ func TestGenerateStorageAccountName(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMapLoadBalancerNameToVMSet(t *testing.T) {
|
func TestMapLoadBalancerNameToVMSet(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.PrimaryAvailabilitySetName = "primary"
|
az.PrimaryAvailabilitySetName = "primary"
|
||||||
|
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
@ -175,7 +175,7 @@ func TestMapLoadBalancerNameToVMSet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetAzureLoadBalancerName(t *testing.T) {
|
func TestGetAzureLoadBalancerName(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.PrimaryAvailabilitySetName = "primary"
|
az.PrimaryAvailabilitySetName = "primary"
|
||||||
|
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
@ -256,7 +256,7 @@ func TestGetAzureLoadBalancerName(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetLoadBalancingRuleName(t *testing.T) {
|
func TestGetLoadBalancingRuleName(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.PrimaryAvailabilitySetName = "primary"
|
az.PrimaryAvailabilitySetName = "primary"
|
||||||
|
|
||||||
svc := &v1.Service{
|
svc := &v1.Service{
|
||||||
@ -337,7 +337,7 @@ func TestGetLoadBalancingRuleName(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetFrontendIPConfigName(t *testing.T) {
|
func TestGetFrontendIPConfigName(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
az.PrimaryAvailabilitySetName = "primary"
|
az.PrimaryAvailabilitySetName = "primary"
|
||||||
|
|
||||||
svc := &v1.Service{
|
svc := &v1.Service{
|
||||||
|
@ -35,9 +35,7 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
"k8s.io/client-go/tools/record"
|
|
||||||
servicehelpers "k8s.io/cloud-provider/service/helpers"
|
servicehelpers "k8s.io/cloud-provider/service/helpers"
|
||||||
"k8s.io/legacy-cloud-providers/azure/auth"
|
|
||||||
"k8s.io/legacy-cloud-providers/azure/retry"
|
"k8s.io/legacy-cloud-providers/azure/retry"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -69,7 +67,7 @@ func TestFlipServiceInternalAnnotation(t *testing.T) {
|
|||||||
|
|
||||||
// Test additional of a new service/port.
|
// Test additional of a new service/port.
|
||||||
func TestAddPort(t *testing.T) {
|
func TestAddPort(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
|
|
||||||
@ -110,7 +108,7 @@ func TestLoadBalancerExternalServiceModeSelection(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testLoadBalancerServiceDefaultModeSelection(t *testing.T, isInternal bool) {
|
func testLoadBalancerServiceDefaultModeSelection(t *testing.T, isInternal bool) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
const vmCount = 8
|
const vmCount = 8
|
||||||
const availabilitySetCount = 4
|
const availabilitySetCount = 4
|
||||||
const serviceCount = 9
|
const serviceCount = 9
|
||||||
@ -165,7 +163,7 @@ func testLoadBalancerServiceDefaultModeSelection(t *testing.T, isInternal bool)
|
|||||||
// Validate even distribution of external services across load balancers
|
// Validate even distribution of external services across load balancers
|
||||||
// based on number of availability sets
|
// based on number of availability sets
|
||||||
func testLoadBalancerServiceAutoModeSelection(t *testing.T, isInternal bool) {
|
func testLoadBalancerServiceAutoModeSelection(t *testing.T, isInternal bool) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
const vmCount = 8
|
const vmCount = 8
|
||||||
const availabilitySetCount = 4
|
const availabilitySetCount = 4
|
||||||
const serviceCount = 9
|
const serviceCount = 9
|
||||||
@ -226,7 +224,7 @@ func testLoadBalancerServiceAutoModeSelection(t *testing.T, isInternal bool) {
|
|||||||
// services will be assigned load balancers that are part of the provided availability sets
|
// services will be assigned load balancers that are part of the provided availability sets
|
||||||
// specified in service annotation
|
// specified in service annotation
|
||||||
func testLoadBalancerServicesSpecifiedSelection(t *testing.T, isInternal bool) {
|
func testLoadBalancerServicesSpecifiedSelection(t *testing.T, isInternal bool) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
const vmCount = 8
|
const vmCount = 8
|
||||||
const availabilitySetCount = 4
|
const availabilitySetCount = 4
|
||||||
const serviceCount = 9
|
const serviceCount = 9
|
||||||
@ -269,7 +267,7 @@ func testLoadBalancerServicesSpecifiedSelection(t *testing.T, isInternal bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testLoadBalancerMaxRulesServices(t *testing.T, isInternal bool) {
|
func testLoadBalancerMaxRulesServices(t *testing.T, isInternal bool) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
const vmCount = 1
|
const vmCount = 1
|
||||||
const availabilitySetCount = 1
|
const availabilitySetCount = 1
|
||||||
|
|
||||||
@ -329,7 +327,7 @@ func testLoadBalancerMaxRulesServices(t *testing.T, isInternal bool) {
|
|||||||
|
|
||||||
// Validate service deletion in lb auto selection mode
|
// Validate service deletion in lb auto selection mode
|
||||||
func testLoadBalancerServiceAutoModeDeleteSelection(t *testing.T, isInternal bool) {
|
func testLoadBalancerServiceAutoModeDeleteSelection(t *testing.T, isInternal bool) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
const vmCount = 8
|
const vmCount = 8
|
||||||
const availabilitySetCount = 4
|
const availabilitySetCount = 4
|
||||||
const serviceCount = 9
|
const serviceCount = 9
|
||||||
@ -387,7 +385,7 @@ func testLoadBalancerServiceAutoModeDeleteSelection(t *testing.T, isInternal boo
|
|||||||
|
|
||||||
// Test addition of a new service on an internal LB with a subnet.
|
// Test addition of a new service on an internal LB with a subnet.
|
||||||
func TestReconcileLoadBalancerAddServiceOnInternalSubnet(t *testing.T) {
|
func TestReconcileLoadBalancerAddServiceOnInternalSubnet(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc := getInternalTestService("servicea", 80)
|
svc := getInternalTestService("servicea", 80)
|
||||||
addTestSubnet(t, az, &svc)
|
addTestSubnet(t, az, &svc)
|
||||||
@ -406,7 +404,7 @@ func TestReconcileLoadBalancerAddServiceOnInternalSubnet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupFromAnyDestinationAddressPrefixToLoadBalancerIP(t *testing.T) {
|
func TestReconcileSecurityGroupFromAnyDestinationAddressPrefixToLoadBalancerIP(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc1 := getTestService("serviceea", v1.ProtocolTCP, nil, 80)
|
svc1 := getTestService("serviceea", v1.ProtocolTCP, nil, 80)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.0.0"
|
svc1.Spec.LoadBalancerIP = "192.168.0.0"
|
||||||
getTestSecurityGroup(az)
|
getTestSecurityGroup(az)
|
||||||
@ -423,7 +421,7 @@ func TestReconcileSecurityGroupFromAnyDestinationAddressPrefixToLoadBalancerIP(t
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupDynamicLoadBalancerIP(t *testing.T) {
|
func TestReconcileSecurityGroupDynamicLoadBalancerIP(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
||||||
svc1.Spec.LoadBalancerIP = ""
|
svc1.Spec.LoadBalancerIP = ""
|
||||||
getTestSecurityGroup(az)
|
getTestSecurityGroup(az)
|
||||||
@ -437,7 +435,7 @@ func TestReconcileSecurityGroupDynamicLoadBalancerIP(t *testing.T) {
|
|||||||
|
|
||||||
// Test addition of services on an internal LB using both default and explicit subnets.
|
// Test addition of services on an internal LB using both default and explicit subnets.
|
||||||
func TestReconcileLoadBalancerAddServicesOnMultipleSubnets(t *testing.T) {
|
func TestReconcileLoadBalancerAddServicesOnMultipleSubnets(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc1 := getTestService("service1", v1.ProtocolTCP, nil, 8081)
|
svc1 := getTestService("service1", v1.ProtocolTCP, nil, 8081)
|
||||||
svc2 := getInternalTestService("service2", 8081)
|
svc2 := getInternalTestService("service2", 8081)
|
||||||
@ -474,7 +472,7 @@ func TestReconcileLoadBalancerAddServicesOnMultipleSubnets(t *testing.T) {
|
|||||||
|
|
||||||
// Test moving a service exposure from one subnet to another.
|
// Test moving a service exposure from one subnet to another.
|
||||||
func TestReconcileLoadBalancerEditServiceSubnet(t *testing.T) {
|
func TestReconcileLoadBalancerEditServiceSubnet(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc := getInternalTestService("service1", 8081)
|
svc := getInternalTestService("service1", 8081)
|
||||||
addTestSubnet(t, az, &svc)
|
addTestSubnet(t, az, &svc)
|
||||||
@ -503,7 +501,7 @@ func TestReconcileLoadBalancerEditServiceSubnet(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileLoadBalancerNodeHealth(t *testing.T) {
|
func TestReconcileLoadBalancerNodeHealth(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
||||||
svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
|
svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeLocal
|
||||||
@ -524,7 +522,7 @@ func TestReconcileLoadBalancerNodeHealth(t *testing.T) {
|
|||||||
|
|
||||||
// Test removing all services results in removing the frontend ip configuration
|
// Test removing all services results in removing the frontend ip configuration
|
||||||
func TestReconcileLoadBalancerRemoveService(t *testing.T) {
|
func TestReconcileLoadBalancerRemoveService(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
|
|
||||||
@ -548,7 +546,7 @@ func TestReconcileLoadBalancerRemoveService(t *testing.T) {
|
|||||||
|
|
||||||
// Test removing all service ports results in removing the frontend ip configuration
|
// Test removing all service ports results in removing the frontend ip configuration
|
||||||
func TestReconcileLoadBalancerRemoveAllPortsRemovesFrontendConfig(t *testing.T) {
|
func TestReconcileLoadBalancerRemoveAllPortsRemovesFrontendConfig(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
||||||
|
|
||||||
@ -574,7 +572,7 @@ func TestReconcileLoadBalancerRemoveAllPortsRemovesFrontendConfig(t *testing.T)
|
|||||||
|
|
||||||
// Test removal of a port from an existing service.
|
// Test removal of a port from an existing service.
|
||||||
func TestReconcileLoadBalancerRemovesPort(t *testing.T) {
|
func TestReconcileLoadBalancerRemovesPort(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
|
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
@ -594,7 +592,7 @@ func TestReconcileLoadBalancerRemovesPort(t *testing.T) {
|
|||||||
|
|
||||||
// Test reconciliation of multiple services on same port
|
// Test reconciliation of multiple services on same port
|
||||||
func TestReconcileLoadBalancerMultipleServices(t *testing.T) {
|
func TestReconcileLoadBalancerMultipleServices(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
svc2 := getTestService("serviceb", v1.ProtocolTCP, nil, 80)
|
svc2 := getTestService("serviceb", v1.ProtocolTCP, nil, 80)
|
||||||
@ -622,7 +620,7 @@ func findLBRuleForPort(lbRules []network.LoadBalancingRule, port int32) (network
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestServiceDefaultsToNoSessionPersistence(t *testing.T) {
|
func TestServiceDefaultsToNoSessionPersistence(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("service-sa-omitted", v1.ProtocolTCP, nil, 7170)
|
svc := getTestService("service-sa-omitted", v1.ProtocolTCP, nil, 7170)
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
|
|
||||||
@ -642,7 +640,7 @@ func TestServiceDefaultsToNoSessionPersistence(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestServiceRespectsNoSessionAffinity(t *testing.T) {
|
func TestServiceRespectsNoSessionAffinity(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("service-sa-none", v1.ProtocolTCP, nil, 7170)
|
svc := getTestService("service-sa-none", v1.ProtocolTCP, nil, 7170)
|
||||||
svc.Spec.SessionAffinity = v1.ServiceAffinityNone
|
svc.Spec.SessionAffinity = v1.ServiceAffinityNone
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
@ -665,7 +663,7 @@ func TestServiceRespectsNoSessionAffinity(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestServiceRespectsClientIPSessionAffinity(t *testing.T) {
|
func TestServiceRespectsClientIPSessionAffinity(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("service-sa-clientip", v1.ProtocolTCP, nil, 7170)
|
svc := getTestService("service-sa-clientip", v1.ProtocolTCP, nil, 7170)
|
||||||
svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP
|
svc.Spec.SessionAffinity = v1.ServiceAffinityClientIP
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
@ -688,7 +686,7 @@ func TestServiceRespectsClientIPSessionAffinity(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupNewServiceAddsPort(t *testing.T) {
|
func TestReconcileSecurityGroupNewServiceAddsPort(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
getTestSecurityGroup(az)
|
getTestSecurityGroup(az)
|
||||||
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
svc1 := getTestService("servicea", v1.ProtocolTCP, nil, 80)
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
@ -704,7 +702,7 @@ func TestReconcileSecurityGroupNewServiceAddsPort(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupNewInternalServiceAddsPort(t *testing.T) {
|
func TestReconcileSecurityGroupNewInternalServiceAddsPort(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
getTestSecurityGroup(az)
|
getTestSecurityGroup(az)
|
||||||
svc1 := getInternalTestService("serviceea", 80)
|
svc1 := getInternalTestService("serviceea", 80)
|
||||||
addTestSubnet(t, az, &svc1)
|
addTestSubnet(t, az, &svc1)
|
||||||
@ -721,7 +719,7 @@ func TestReconcileSecurityGroupNewInternalServiceAddsPort(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupRemoveService(t *testing.T) {
|
func TestReconcileSecurityGroupRemoveService(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
service1 := getTestService("servicea", v1.ProtocolTCP, nil, 81)
|
service1 := getTestService("servicea", v1.ProtocolTCP, nil, 81)
|
||||||
service2 := getTestService("serviceb", v1.ProtocolTCP, nil, 82)
|
service2 := getTestService("serviceb", v1.ProtocolTCP, nil, 82)
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
@ -743,7 +741,7 @@ func TestReconcileSecurityGroupRemoveService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupRemoveServiceRemovesPort(t *testing.T) {
|
func TestReconcileSecurityGroupRemoveServiceRemovesPort(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
clusterResources := getClusterResources(az, 1, 1)
|
clusterResources := getClusterResources(az, 1, 1)
|
||||||
|
|
||||||
@ -761,7 +759,7 @@ func TestReconcileSecurityGroupRemoveServiceRemovesPort(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityWithSourceRanges(t *testing.T) {
|
func TestReconcileSecurityWithSourceRanges(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
svc.Spec.LoadBalancerSourceRanges = []string{
|
svc.Spec.LoadBalancerSourceRanges = []string{
|
||||||
"192.168.0.0/24",
|
"192.168.0.0/24",
|
||||||
@ -782,7 +780,7 @@ func TestReconcileSecurityWithSourceRanges(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcileSecurityGroupEtagMismatch(t *testing.T) {
|
func TestReconcileSecurityGroupEtagMismatch(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
sg := getTestSecurityGroup(az)
|
sg := getTestSecurityGroup(az)
|
||||||
cachedSG := *sg
|
cachedSG := *sg
|
||||||
@ -805,7 +803,7 @@ func TestReconcileSecurityGroupEtagMismatch(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcilePublicIPWithNewService(t *testing.T) {
|
func TestReconcilePublicIPWithNewService(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
|
|
||||||
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
||||||
@ -826,7 +824,7 @@ func TestReconcilePublicIPWithNewService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcilePublicIPRemoveService(t *testing.T) {
|
func TestReconcilePublicIPRemoveService(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
svc := getTestService("servicea", v1.ProtocolTCP, nil, 80, 443)
|
||||||
|
|
||||||
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
||||||
@ -846,7 +844,7 @@ func TestReconcilePublicIPRemoveService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcilePublicIPWithInternalService(t *testing.T) {
|
func TestReconcilePublicIPWithInternalService(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getInternalTestService("servicea", 80, 443)
|
svc := getInternalTestService("servicea", 80, 443)
|
||||||
|
|
||||||
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
||||||
@ -858,7 +856,7 @@ func TestReconcilePublicIPWithInternalService(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestReconcilePublicIPWithExternalAndInternalSwitch(t *testing.T) {
|
func TestReconcilePublicIPWithExternalAndInternalSwitch(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getInternalTestService("servicea", 80, 443)
|
svc := getInternalTestService("servicea", 80, 443)
|
||||||
|
|
||||||
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
pip, err := az.reconcilePublicIP(testClusterName, &svc, "", true /* wantLb*/)
|
||||||
@ -883,54 +881,6 @@ func TestReconcilePublicIPWithExternalAndInternalSwitch(t *testing.T) {
|
|||||||
validatePublicIP(t, pip, &svc, true)
|
validatePublicIP(t, pip, &svc, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getTestCloud() (az *Cloud) {
|
|
||||||
az = &Cloud{
|
|
||||||
Config: Config{
|
|
||||||
AzureAuthConfig: auth.AzureAuthConfig{
|
|
||||||
TenantID: "tenant",
|
|
||||||
SubscriptionID: "subscription",
|
|
||||||
},
|
|
||||||
ResourceGroup: "rg",
|
|
||||||
VnetResourceGroup: "rg",
|
|
||||||
RouteTableResourceGroup: "rg",
|
|
||||||
SecurityGroupResourceGroup: "rg",
|
|
||||||
Location: "westus",
|
|
||||||
VnetName: "vnet",
|
|
||||||
SubnetName: "subnet",
|
|
||||||
SecurityGroupName: "nsg",
|
|
||||||
RouteTableName: "rt",
|
|
||||||
PrimaryAvailabilitySetName: "as",
|
|
||||||
MaximumLoadBalancerRuleCount: 250,
|
|
||||||
VMType: vmTypeStandard,
|
|
||||||
},
|
|
||||||
nodeZones: map[string]sets.String{},
|
|
||||||
nodeInformerSynced: func() bool { return true },
|
|
||||||
nodeResourceGroups: map[string]string{},
|
|
||||||
unmanagedNodes: sets.NewString(),
|
|
||||||
routeCIDRs: map[string]string{},
|
|
||||||
eventRecorder: &record.FakeRecorder{},
|
|
||||||
}
|
|
||||||
az.DisksClient = newFakeDisksClient()
|
|
||||||
az.InterfacesClient = newFakeAzureInterfacesClient()
|
|
||||||
az.LoadBalancerClient = newFakeAzureLBClient()
|
|
||||||
az.PublicIPAddressesClient = newFakeAzurePIPClient(az.Config.SubscriptionID)
|
|
||||||
az.RoutesClient = newFakeRoutesClient()
|
|
||||||
az.RouteTablesClient = newFakeRouteTablesClient()
|
|
||||||
az.SecurityGroupsClient = newFakeAzureNSGClient()
|
|
||||||
az.SubnetsClient = newFakeAzureSubnetsClient()
|
|
||||||
az.VirtualMachineScaleSetsClient = newFakeVirtualMachineScaleSetsClient()
|
|
||||||
az.VirtualMachineScaleSetVMsClient = newFakeVirtualMachineScaleSetVMsClient()
|
|
||||||
az.VirtualMachinesClient = newFakeAzureVirtualMachinesClient()
|
|
||||||
az.vmSet = newAvailabilitySet(az)
|
|
||||||
az.vmCache, _ = az.newVMCache()
|
|
||||||
az.lbCache, _ = az.newLBCache()
|
|
||||||
az.nsgCache, _ = az.newNSGCache()
|
|
||||||
az.rtCache, _ = az.newRouteTableCache()
|
|
||||||
az.controllerCommon = &controllerCommon{cloud: az}
|
|
||||||
|
|
||||||
return az
|
|
||||||
}
|
|
||||||
|
|
||||||
const networkInterfacesIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/networkInterfaces/%s"
|
const networkInterfacesIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/networkInterfaces/%s"
|
||||||
const primaryIPConfigIDTemplate = "%s/ipConfigurations/ipconfig"
|
const primaryIPConfigIDTemplate = "%s/ipConfigurations/ipconfig"
|
||||||
|
|
||||||
@ -1159,7 +1109,7 @@ func getTestSecurityGroup(az *Cloud, services ...v1.Service) *network.SecurityGr
|
|||||||
}
|
}
|
||||||
|
|
||||||
func validateLoadBalancer(t *testing.T, loadBalancer *network.LoadBalancer, services ...v1.Service) {
|
func validateLoadBalancer(t *testing.T, loadBalancer *network.LoadBalancer, services ...v1.Service) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
expectedRuleCount := 0
|
expectedRuleCount := 0
|
||||||
expectedFrontendIPCount := 0
|
expectedFrontendIPCount := 0
|
||||||
expectedProbeCount := 0
|
expectedProbeCount := 0
|
||||||
@ -1375,7 +1325,7 @@ func securityRuleMatches(serviceSourceRange string, servicePort v1.ServicePort,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func validateSecurityGroup(t *testing.T, securityGroup *network.SecurityGroup, services ...v1.Service) {
|
func validateSecurityGroup(t *testing.T, securityGroup *network.SecurityGroup, services ...v1.Service) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
seenRules := make(map[string]string)
|
seenRules := make(map[string]string)
|
||||||
for _, svc := range services {
|
for _, svc := range services {
|
||||||
for _, wantedRule := range svc.Spec.Ports {
|
for _, wantedRule := range svc.Spec.Ports {
|
||||||
@ -1702,7 +1652,7 @@ func validateEmptyConfig(t *testing.T, config string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGetNodeNameByProviderID(t *testing.T) {
|
func TestGetNodeNameByProviderID(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
providers := []struct {
|
providers := []struct {
|
||||||
providerID string
|
providerID string
|
||||||
name types.NodeName
|
name types.NodeName
|
||||||
@ -1783,7 +1733,7 @@ func addTestSubnet(t *testing.T, az *Cloud, svc *v1.Service) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServiceSpecifiesSharedRuleAndRuleDoesNotExistItIsCreated(t *testing.T) {
|
func TestIfServiceSpecifiesSharedRuleAndRuleDoesNotExistItIsCreated(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicesr", v1.ProtocolTCP, nil, 80)
|
svc := getTestService("servicesr", v1.ProtocolTCP, nil, 80)
|
||||||
svc.Spec.LoadBalancerIP = "192.168.77.88"
|
svc.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
svc.Annotations[ServiceAnnotationSharedSecurityRule] = "true"
|
svc.Annotations[ServiceAnnotationSharedSecurityRule] = "true"
|
||||||
@ -1822,7 +1772,7 @@ func TestIfServiceSpecifiesSharedRuleAndRuleDoesNotExistItIsCreated(t *testing.T
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServiceSpecifiesSharedRuleAndRuleExistsThenTheServicesPortAndAddressAreAdded(t *testing.T) {
|
func TestIfServiceSpecifiesSharedRuleAndRuleExistsThenTheServicesPortAndAddressAreAdded(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
svc := getTestService("servicesr", v1.ProtocolTCP, nil, 80)
|
svc := getTestService("servicesr", v1.ProtocolTCP, nil, 80)
|
||||||
svc.Spec.LoadBalancerIP = "192.168.77.88"
|
svc.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
svc.Annotations[ServiceAnnotationSharedSecurityRule] = "true"
|
svc.Annotations[ServiceAnnotationSharedSecurityRule] = "true"
|
||||||
@ -1874,7 +1824,7 @@ func TestIfServiceSpecifiesSharedRuleAndRuleExistsThenTheServicesPortAndAddressA
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServicesSpecifySharedRuleButDifferentPortsThenSeparateRulesAreCreated(t *testing.T) {
|
func TestIfServicesSpecifySharedRuleButDifferentPortsThenSeparateRulesAreCreated(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -1943,7 +1893,7 @@ func TestIfServicesSpecifySharedRuleButDifferentPortsThenSeparateRulesAreCreated
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServicesSpecifySharedRuleButDifferentProtocolsThenSeparateRulesAreCreated(t *testing.T) {
|
func TestIfServicesSpecifySharedRuleButDifferentProtocolsThenSeparateRulesAreCreated(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2010,7 +1960,7 @@ func TestIfServicesSpecifySharedRuleButDifferentProtocolsThenSeparateRulesAreCre
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServicesSpecifySharedRuleButDifferentSourceAddressesThenSeparateRulesAreCreated(t *testing.T) {
|
func TestIfServicesSpecifySharedRuleButDifferentSourceAddressesThenSeparateRulesAreCreated(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 80)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 80)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2081,7 +2031,7 @@ func TestIfServicesSpecifySharedRuleButDifferentSourceAddressesThenSeparateRules
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServicesSpecifySharedRuleButSomeAreOnDifferentPortsThenRulesAreSeparatedOrConsoliatedByPort(t *testing.T) {
|
func TestIfServicesSpecifySharedRuleButSomeAreOnDifferentPortsThenRulesAreSeparatedOrConsoliatedByPort(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2181,7 +2131,7 @@ func TestIfServicesSpecifySharedRuleButSomeAreOnDifferentPortsThenRulesAreSepara
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServiceSpecifiesSharedRuleAndServiceIsDeletedThenTheServicesPortAndAddressAreRemoved(t *testing.T) {
|
func TestIfServiceSpecifiesSharedRuleAndServiceIsDeletedThenTheServicesPortAndAddressAreRemoved(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 80)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 80)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2236,7 +2186,7 @@ func TestIfServiceSpecifiesSharedRuleAndServiceIsDeletedThenTheServicesPortAndAd
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfSomeServicesShareARuleAndOneIsDeletedItIsRemovedFromTheRightRule(t *testing.T) {
|
func TestIfSomeServicesShareARuleAndOneIsDeletedItIsRemovedFromTheRightRule(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2343,7 +2293,7 @@ func TestIfSomeServicesShareARuleAndOneIsDeletedItIsRemovedFromTheRightRule(t *t
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestIfServiceSpecifiesSharedRuleAndLastServiceIsDeletedThenRuleIsDeleted(t *testing.T) {
|
func TestIfServiceSpecifiesSharedRuleAndLastServiceIsDeletedThenRuleIsDeleted(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2423,7 +2373,7 @@ func TestIfServiceSpecifiesSharedRuleAndLastServiceIsDeletedThenRuleIsDeleted(t
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestCanCombineSharedAndPrivateRulesInSameGroup(t *testing.T) {
|
func TestCanCombineSharedAndPrivateRulesInSameGroup(t *testing.T) {
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
|
|
||||||
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
svc1 := getTestService("servicesr1", v1.ProtocolTCP, nil, 4444)
|
||||||
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
svc1.Spec.LoadBalancerIP = "192.168.77.88"
|
||||||
@ -2680,7 +2630,7 @@ func TestGetResourceGroups(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
az.nodeResourceGroups = test.nodeResourceGroups
|
az.nodeResourceGroups = test.nodeResourceGroups
|
||||||
if test.informerSynced {
|
if test.informerSynced {
|
||||||
@ -2730,7 +2680,7 @@ func TestGetNodeResourceGroup(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
az.nodeResourceGroups = test.nodeResourceGroups
|
az.nodeResourceGroups = test.nodeResourceGroups
|
||||||
if test.informerSynced {
|
if test.informerSynced {
|
||||||
|
@ -38,7 +38,7 @@ func newTestScaleSet(scaleSetName, zone string, faultDomain int32, vmList []stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newTestScaleSetWithState(scaleSetName, zone string, faultDomain int32, vmList []string, state string) (*scaleSet, error) {
|
func newTestScaleSetWithState(scaleSetName, zone string, faultDomain int32, vmList []string, state string) (*scaleSet, error) {
|
||||||
cloud := getTestCloud()
|
cloud := GetTestCloud()
|
||||||
setTestVirtualMachineCloud(cloud, scaleSetName, zone, faultDomain, vmList, state)
|
setTestVirtualMachineCloud(cloud, scaleSetName, zone, faultDomain, vmList, state)
|
||||||
ss, err := newScaleSet(cloud)
|
ss, err := newScaleSet(cloud)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -89,7 +89,7 @@ func TestIsNodeUnmanaged(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
az.unmanagedNodes = test.unmanagedNodes
|
az.unmanagedNodes = test.unmanagedNodes
|
||||||
if test.expectErr {
|
if test.expectErr {
|
||||||
@ -137,7 +137,7 @@ func TestIsNodeUnmanagedByProviderID(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
az := getTestCloud()
|
az := GetTestCloud()
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
isUnmanagedNode := az.IsNodeUnmanagedByProviderID(test.providerID)
|
isUnmanagedNode := az.IsNodeUnmanagedByProviderID(test.providerID)
|
||||||
assert.Equal(t, test.expected, isUnmanagedNode, test.providerID)
|
assert.Equal(t, test.expected, isUnmanagedNode, test.providerID)
|
||||||
|
Loading…
Reference in New Issue
Block a user