mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 10:43:56 +00:00
azure: filter load balancer backend nodes to PrimaryAvailabilitySet if set
This commit is contained in:
parent
049a023625
commit
113c5e3475
@ -42,6 +42,7 @@ type Config struct {
|
|||||||
SubnetName string `json:"subnetName" yaml:"subnetName"`
|
SubnetName string `json:"subnetName" yaml:"subnetName"`
|
||||||
SecurityGroupName string `json:"securityGroupName" yaml:"securityGroupName"`
|
SecurityGroupName string `json:"securityGroupName" yaml:"securityGroupName"`
|
||||||
RouteTableName string `json:"routeTableName" yaml:"routeTableName"`
|
RouteTableName string `json:"routeTableName" yaml:"routeTableName"`
|
||||||
|
PrimaryAvailabilitySetName string `json:"primaryAvailabilitySetName" yaml:"primaryAvailabilitySetName"`
|
||||||
|
|
||||||
AADClientID string `json:"aadClientId" yaml:"aadClientId"`
|
AADClientID string `json:"aadClientId" yaml:"aadClientId"`
|
||||||
AADClientSecret string `json:"aadClientSecret" yaml:"aadClientSecret"`
|
AADClientSecret string `json:"aadClientSecret" yaml:"aadClientSecret"`
|
||||||
|
@ -573,6 +573,17 @@ func (az *Cloud) ensureHostInPool(serviceName string, nodeName types.NodeName, b
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check availability set
|
||||||
|
if az.PrimaryAvailabilitySetName != "" {
|
||||||
|
expectedAvailabilitySetName := az.getAvailabilitySetID(az.PrimaryAvailabilitySetName)
|
||||||
|
if !strings.EqualFold(*machine.Properties.AvailabilitySet.ID, expectedAvailabilitySetName) {
|
||||||
|
glog.V(1).Infof(
|
||||||
|
"nicupdate(%s): skipping nic (%s) since it is not in the primaryAvailabilitSet(%s)",
|
||||||
|
serviceName, nicName, az.PrimaryAvailabilitySetName)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nic, err := az.InterfacesClient.Get(az.ResourceGroup, nicName, "")
|
nic, err := az.InterfacesClient.Get(az.ResourceGroup, nicName, "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -412,7 +412,8 @@ func TestNewCloudFromJSON(t *testing.T) {
|
|||||||
"subnetName": "--subnet-name--",
|
"subnetName": "--subnet-name--",
|
||||||
"securityGroupName": "--security-group-name--",
|
"securityGroupName": "--security-group-name--",
|
||||||
"vnetName": "--vnet-name--",
|
"vnetName": "--vnet-name--",
|
||||||
"routeTableName": "--route-table-name--"
|
"routeTableName": "--route-table-name--",
|
||||||
|
"primaryAvailabilitySetName": "--primary-availability-set-name--"
|
||||||
}`
|
}`
|
||||||
validateConfig(t, config)
|
validateConfig(t, config)
|
||||||
}
|
}
|
||||||
@ -430,6 +431,7 @@ subnetName: --subnet-name--
|
|||||||
securityGroupName: --security-group-name--
|
securityGroupName: --security-group-name--
|
||||||
vnetName: --vnet-name--
|
vnetName: --vnet-name--
|
||||||
routeTableName: --route-table-name--
|
routeTableName: --route-table-name--
|
||||||
|
primaryAvailabilitySetName: --primary-availability-set-name--
|
||||||
`
|
`
|
||||||
validateConfig(t, config)
|
validateConfig(t, config)
|
||||||
}
|
}
|
||||||
@ -476,6 +478,9 @@ func validateConfig(t *testing.T, config string) {
|
|||||||
if azureCloud.RouteTableName != "--route-table-name--" {
|
if azureCloud.RouteTableName != "--route-table-name--" {
|
||||||
t.Errorf("got incorrect value for RouteTableName")
|
t.Errorf("got incorrect value for RouteTableName")
|
||||||
}
|
}
|
||||||
|
if azureCloud.PrimaryAvailabilitySetName != "--primary-availability-set-name--" {
|
||||||
|
t.Errorf("got incorrect value for PrimaryAvailabilitySetName")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDecodeInstanceInfo(t *testing.T) {
|
func TestDecodeInstanceInfo(t *testing.T) {
|
||||||
|
@ -32,7 +32,8 @@ const (
|
|||||||
loadBalancerMinimumPriority = 500
|
loadBalancerMinimumPriority = 500
|
||||||
loadBalancerMaximumPriority = 4096
|
loadBalancerMaximumPriority = 4096
|
||||||
|
|
||||||
machineResourceIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/%s"
|
machineIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/virtualMachines/%s"
|
||||||
|
availabilitySetIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Compute/availabilitySets/%s"
|
||||||
frontendIPConfigIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/loadBalancers/%s/frontendIPConfigurations/%s"
|
frontendIPConfigIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/loadBalancers/%s/frontendIPConfigurations/%s"
|
||||||
backendPoolIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/loadBalancers/%s/backendAddressPools/%s"
|
backendPoolIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/loadBalancers/%s/backendAddressPools/%s"
|
||||||
loadBalancerRuleIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/loadBalancers/%s/loadBalancingRules/%s"
|
loadBalancerRuleIDTemplate = "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Network/loadBalancers/%s/loadBalancingRules/%s"
|
||||||
@ -43,12 +44,21 @@ const (
|
|||||||
// returns the full identifier of a machine
|
// returns the full identifier of a machine
|
||||||
func (az *Cloud) getMachineID(machineName string) string {
|
func (az *Cloud) getMachineID(machineName string) string {
|
||||||
return fmt.Sprintf(
|
return fmt.Sprintf(
|
||||||
machineResourceIDTemplate,
|
machineIDTemplate,
|
||||||
az.SubscriptionID,
|
az.SubscriptionID,
|
||||||
az.ResourceGroup,
|
az.ResourceGroup,
|
||||||
machineName)
|
machineName)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// returns the full identifier of an availabilitySet
|
||||||
|
func (az *Cloud) getAvailabilitySetID(availabilitySetName string) string {
|
||||||
|
return fmt.Sprintf(
|
||||||
|
availabilitySetIDTemplate,
|
||||||
|
az.SubscriptionID,
|
||||||
|
az.ResourceGroup,
|
||||||
|
availabilitySetName)
|
||||||
|
}
|
||||||
|
|
||||||
// returns the full identifier of a loadbalancer frontendipconfiguration.
|
// returns the full identifier of a loadbalancer frontendipconfiguration.
|
||||||
func (az *Cloud) getFrontendIPConfigID(lbName, backendPoolName string) string {
|
func (az *Cloud) getFrontendIPConfigID(lbName, backendPoolName string) string {
|
||||||
return fmt.Sprintf(
|
return fmt.Sprintf(
|
||||||
|
Loading…
Reference in New Issue
Block a user