in controllers/manager/gatewayvmconfiguration_controller.go [780:818]
func (r *GatewayVMConfigurationReconciler) getExpectedIPConfig(
ipConfigName,
ipPrefixID string,
interfaces []*compute.VirtualMachineScaleSetNetworkConfiguration,
) *compute.VirtualMachineScaleSetIPConfiguration {
var subnetID *string
for _, nic := range interfaces {
if nic.Properties != nil && to.Val(nic.Properties.Primary) {
for _, ipConfig := range nic.Properties.IPConfigurations {
if ipConfig.Properties != nil && to.Val(ipConfig.Properties.Primary) {
subnetID = ipConfig.Properties.Subnet.ID
}
}
}
}
var pipConfig *compute.VirtualMachineScaleSetPublicIPAddressConfiguration
if ipPrefixID != "" {
pipConfig = &compute.VirtualMachineScaleSetPublicIPAddressConfiguration{
Name: to.Ptr(ipConfigName),
Properties: &compute.VirtualMachineScaleSetPublicIPAddressConfigurationProperties{
PublicIPPrefix: &compute.SubResource{
ID: to.Ptr(ipPrefixID),
},
},
}
}
return &compute.VirtualMachineScaleSetIPConfiguration{
Name: to.Ptr(ipConfigName),
Properties: &compute.VirtualMachineScaleSetIPConfigurationProperties{
Primary: to.Ptr(false),
PrivateIPAddressVersion: to.Ptr(compute.IPVersionIPv4),
PublicIPAddressConfiguration: pipConfig,
Subnet: &compute.APIEntityReference{
ID: subnetID,
},
},
}
}