azure: Migrate model to new SDK version

This commit is contained in:
Ciprian Hacman 2024-01-28 07:10:34 +02:00
parent 6b5a429e5b
commit 4198b19438
5 changed files with 95 additions and 96 deletions

View File

@ -19,7 +19,7 @@ package azuremodel
import (
"fmt"
"github.com/Azure/go-autorest/autorest/to"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup/azuretasks"
@ -57,14 +57,14 @@ func (b *APILoadBalancerModelBuilder) Build(c *fi.CloudupModelBuilderContext) er
switch lbSpec.Type {
case kops.LoadBalancerTypeInternal:
lb.External = to.BoolPtr(false)
lb.External = to.Ptr(false)
subnet, err := b.subnetForLoadBalancer()
if err != nil {
return err
}
lb.Subnet = b.LinkToAzureSubnet(subnet)
case kops.LoadBalancerTypePublic:
lb.External = to.BoolPtr(true)
lb.External = to.Ptr(true)
// Create Public IP Address for Public Loadbalacer
p := &azuretasks.PublicIPAddress{

View File

@ -19,7 +19,7 @@ package azuremodel
import (
"strconv"
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2022-05-01/network"
network "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/wellknownports"
"k8s.io/kops/upup/pkg/fi"
@ -61,11 +61,11 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolTCP,
SourceAddressPrefixes: &sshAccessIPv4,
SourceAddressPrefixes: sshAccessIPv4,
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{
b.NameForApplicationSecurityGroupControlPlane(),
b.NameForApplicationSecurityGroupNodes(),
DestinationApplicationSecurityGroupNames: []*string{
fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane()),
fi.PtrTo(b.NameForApplicationSecurityGroupNodes()),
},
DestinationPortRange: fi.PtrTo("22"),
})
@ -78,11 +78,11 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolTCP,
SourceAddressPrefixes: &sshAccessIPv6,
SourceAddressPrefixes: sshAccessIPv6,
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{
b.NameForApplicationSecurityGroupControlPlane(),
b.NameForApplicationSecurityGroupNodes(),
DestinationApplicationSecurityGroupNames: []*string{
fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane()),
fi.PtrTo(b.NameForApplicationSecurityGroupNodes()),
},
DestinationPortRange: fi.PtrTo("22"),
})
@ -95,9 +95,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolTCP,
SourceAddressPrefixes: &k8sAccessIPv4,
SourceAddressPrefixes: k8sAccessIPv4,
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo(strconv.Itoa(wellknownports.KubeAPIServer)),
})
}
@ -109,9 +109,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolTCP,
SourceAddressPrefixes: &k8sAccessIPv6,
SourceAddressPrefixes: k8sAccessIPv6,
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo(strconv.Itoa(wellknownports.KubeAPIServer)),
})
}
@ -123,9 +123,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolAsterisk,
SourceAddressPrefixes: &nodePortAccessIPv4,
SourceAddressPrefixes: nodePortAccessIPv4,
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
DestinationPortRange: fi.PtrTo("30000-32767"),
})
}
@ -137,9 +137,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolAsterisk,
SourceAddressPrefixes: &nodePortAccessIPv6,
SourceAddressPrefixes: nodePortAccessIPv6,
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
DestinationPortRange: fi.PtrTo("30000-32767"),
})
}
@ -149,9 +149,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolAsterisk,
SourceApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
SourceApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo("*"),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -160,9 +160,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolAsterisk,
SourceApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
SourceApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
DestinationPortRange: fi.PtrTo("*"),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -171,9 +171,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolAsterisk,
SourceApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
SourceApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
DestinationPortRange: fi.PtrTo("*"),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -182,9 +182,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessDeny,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolTCP,
SourceApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
SourceApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo("2380-2381"),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -193,9 +193,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessDeny,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolTCP,
SourceApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
SourceApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo("4000-4001"),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -204,9 +204,9 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Access: network.SecurityRuleAccessAllow,
Direction: network.SecurityRuleDirectionInbound,
Protocol: network.SecurityRuleProtocolAsterisk,
SourceApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
SourceApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo("*"),
})
if b.Cluster.UsesNoneDNS() && b.Cluster.Spec.API.LoadBalancer != nil && b.Cluster.Spec.API.LoadBalancer.Type == kops.LoadBalancerTypePublic {
@ -219,7 +219,7 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Protocol: network.SecurityRuleProtocolTCP,
SourceAddressPrefix: fi.PtrTo("*"),
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo(strconv.Itoa(wellknownports.KubeAPIServer)),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -230,7 +230,7 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Protocol: network.SecurityRuleProtocolTCP,
SourceAddressPrefix: fi.PtrTo("*"),
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo(strconv.Itoa(wellknownports.KopsControllerPort)),
})
}
@ -253,7 +253,7 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Protocol: network.SecurityRuleProtocolAsterisk,
SourceAddressPrefix: fi.PtrTo("*"),
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupControlPlane()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupControlPlane())},
DestinationPortRange: fi.PtrTo("*"),
})
nsgTask.SecurityRules = append(nsgTask.SecurityRules, &azuretasks.NetworkSecurityRule{
@ -264,7 +264,7 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
Protocol: network.SecurityRuleProtocolAsterisk,
SourceAddressPrefix: fi.PtrTo("*"),
SourcePortRange: fi.PtrTo("*"),
DestinationApplicationSecurityGroupNames: &[]string{b.NameForApplicationSecurityGroupNodes()},
DestinationApplicationSecurityGroupNames: []*string{fi.PtrTo(b.NameForApplicationSecurityGroupNodes())},
DestinationPortRange: fi.PtrTo("*"),
})
c.AddTask(nsgTask)
@ -311,21 +311,23 @@ func (b *NetworkModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
return nil
}
func ipv4CIDRs(mixedCIDRs []string) []string {
var cidrs []string
for _, cidr := range mixedCIDRs {
func ipv4CIDRs(mixedCIDRs []string) []*string {
var cidrs []*string
for i := range mixedCIDRs {
cidr := mixedCIDRs[i]
if net.IPFamilyOfCIDRString(cidr) == net.IPv4 {
cidrs = append(cidrs, cidr)
cidrs = append(cidrs, &cidr)
}
}
return cidrs
}
func ipv6CIDRs(mixedCIDRs []string) []string {
var cidrs []string
for _, cidr := range mixedCIDRs {
func ipv6CIDRs(mixedCIDRs []string) []*string {
var cidrs []*string
for i := range mixedCIDRs {
cidr := mixedCIDRs[i]
if net.IPFamilyOfCIDRString(cidr) == net.IPv6 {
cidrs = append(cidrs, cidr)
cidrs = append(cidrs, &cidr)
}
}
return cidrs

View File

@ -20,8 +20,8 @@ import (
"fmt"
"strings"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2022-08-01/compute"
"github.com/Azure/go-autorest/autorest/to"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
compute "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/model"
"k8s.io/kops/pkg/model/defaults"
@ -86,13 +86,13 @@ func (b *VMScaleSetModelBuilder) buildVMScaleSetTask(
name string,
ig *kops.InstanceGroup,
) (*azuretasks.VMScaleSet, error) {
var azNumbers []string
var azNumbers []*string
for _, zone := range ig.Spec.Zones {
az, err := azure.ZoneToAvailabilityZoneNumber(zone)
if err != nil {
return nil, err
}
azNumbers = append(azNumbers, az)
azNumbers = append(azNumbers, &az)
}
t := &azuretasks.VMScaleSet{
Name: fi.PtrTo(name),
@ -162,7 +162,7 @@ func (b *VMScaleSetModelBuilder) buildVMScaleSetTask(
if ig.Spec.Role == kops.InstanceGroupRoleControlPlane && b.Cluster.Spec.API.LoadBalancer != nil {
t.LoadBalancer = &azuretasks.LoadBalancer{
Name: to.StringPtr(b.NameForLoadBalancer()),
Name: to.Ptr(b.NameForLoadBalancer()),
}
}
@ -207,7 +207,7 @@ func getStorageProfile(spec *kops.InstanceGroupSpec) (*compute.VirtualMachineSca
if spec.RootVolume != nil && spec.RootVolume.Type != nil {
storageAccountType = compute.StorageAccountTypes(*spec.RootVolume.Type)
} else {
storageAccountType = compute.StorageAccountTypesPremiumLRS
storageAccountType = compute.StorageAccountTypesStandardSSDLRS
}
imageReference, err := parseImage(spec.Image)
@ -216,16 +216,15 @@ func getStorageProfile(spec *kops.InstanceGroupSpec) (*compute.VirtualMachineSca
}
return &compute.VirtualMachineScaleSetStorageProfile{
DiskControllerType: fi.PtrTo(string(compute.SCSI)),
ImageReference: imageReference,
OsDisk: &compute.VirtualMachineScaleSetOSDisk{
OsType: compute.OperatingSystemTypes(compute.Linux),
CreateOption: compute.DiskCreateOptionTypesFromImage,
DiskSizeGB: to.Int32Ptr(volumeSize),
ImageReference: imageReference,
OSDisk: &compute.VirtualMachineScaleSetOSDisk{
OSType: to.Ptr(compute.OperatingSystemTypesLinux),
CreateOption: to.Ptr(compute.DiskCreateOptionTypesFromImage),
DiskSizeGB: to.Ptr(volumeSize),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParameters{
StorageAccountType: storageAccountType,
StorageAccountType: &storageAccountType,
},
Caching: compute.CachingTypes(compute.HostCachingReadWrite),
Caching: to.Ptr(compute.CachingTypesReadWrite),
},
}, nil
}
@ -233,7 +232,7 @@ func getStorageProfile(spec *kops.InstanceGroupSpec) (*compute.VirtualMachineSca
func parseImage(image string) (*compute.ImageReference, error) {
if strings.HasPrefix(image, "/subscriptions/") {
return &compute.ImageReference{
ID: to.StringPtr(image),
ID: to.Ptr(image),
}, nil
}
@ -242,20 +241,20 @@ func parseImage(image string) (*compute.ImageReference, error) {
return nil, fmt.Errorf("malformed format of image urn: %s", image)
}
return &compute.ImageReference{
Publisher: to.StringPtr(l[0]),
Offer: to.StringPtr(l[1]),
Sku: to.StringPtr(l[2]),
Version: to.StringPtr(l[3]),
Publisher: to.Ptr(l[0]),
Offer: to.Ptr(l[1]),
SKU: to.Ptr(l[2]),
Version: to.Ptr(l[3]),
}, nil
}
func (b *VMScaleSetModelBuilder) buildRoleAssignmentTask(vmss *azuretasks.VMScaleSet, roleKey, roleDefID string) *azuretasks.RoleAssignment {
name := fmt.Sprintf("%s-%s", *vmss.Name, roleKey)
return &azuretasks.RoleAssignment{
Name: to.StringPtr(name),
Name: to.Ptr(name),
Lifecycle: b.Lifecycle,
ResourceGroup: b.LinkToResourceGroup(),
VMScaleSet: vmss,
RoleDefID: to.StringPtr(roleDefID),
RoleDefID: to.Ptr(roleDefID),
}
}

View File

@ -21,8 +21,8 @@ import (
"reflect"
"testing"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2022-08-01/compute"
"github.com/Azure/go-autorest/autorest/to"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
compute "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/model"
"k8s.io/kops/pkg/model/defaults"
@ -149,26 +149,25 @@ func TestGetStorageProfile(t *testing.T) {
spec: kops.InstanceGroupSpec{
Image: "Canonical:UbuntuServer:18.04-LTS:latest",
RootVolume: &kops.InstanceRootVolumeSpec{
Type: fi.PtrTo(string(compute.StorageAccountTypesStandardLRS)),
Type: fi.PtrTo(string(compute.StorageAccountTypesUltraSSDLRS)),
Size: fi.PtrTo(int32(128)),
},
},
profile: &compute.VirtualMachineScaleSetStorageProfile{
DiskControllerType: fi.PtrTo(string(compute.SCSI)),
ImageReference: &compute.ImageReference{
Publisher: to.StringPtr("Canonical"),
Offer: to.StringPtr("UbuntuServer"),
Sku: to.StringPtr("18.04-LTS"),
Version: to.StringPtr("latest"),
Publisher: to.Ptr("Canonical"),
Offer: to.Ptr("UbuntuServer"),
SKU: to.Ptr("18.04-LTS"),
Version: to.Ptr("latest"),
},
OsDisk: &compute.VirtualMachineScaleSetOSDisk{
OsType: compute.OperatingSystemTypes(compute.Linux),
CreateOption: compute.DiskCreateOptionTypesFromImage,
DiskSizeGB: to.Int32Ptr(128),
OSDisk: &compute.VirtualMachineScaleSetOSDisk{
OSType: to.Ptr(compute.OperatingSystemTypesLinux),
CreateOption: to.Ptr(compute.DiskCreateOptionTypesFromImage),
DiskSizeGB: to.Ptr[int32](128),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParameters{
StorageAccountType: compute.StorageAccountTypesStandardLRS,
StorageAccountType: to.Ptr(compute.StorageAccountTypesUltraSSDLRS),
},
Caching: compute.CachingTypes(compute.HostCachingReadWrite),
Caching: to.Ptr(compute.CachingTypesReadWrite),
},
},
},
@ -178,21 +177,20 @@ func TestGetStorageProfile(t *testing.T) {
Role: kops.InstanceGroupRoleControlPlane,
},
profile: &compute.VirtualMachineScaleSetStorageProfile{
DiskControllerType: fi.PtrTo(string(compute.SCSI)),
ImageReference: &compute.ImageReference{
Publisher: to.StringPtr("Canonical"),
Offer: to.StringPtr("UbuntuServer"),
Sku: to.StringPtr("18.04-LTS"),
Version: to.StringPtr("latest"),
Publisher: to.Ptr("Canonical"),
Offer: to.Ptr("UbuntuServer"),
SKU: to.Ptr("18.04-LTS"),
Version: to.Ptr("latest"),
},
OsDisk: &compute.VirtualMachineScaleSetOSDisk{
OsType: compute.OperatingSystemTypes(compute.Linux),
CreateOption: compute.DiskCreateOptionTypesFromImage,
DiskSizeGB: to.Int32Ptr(defaults.DefaultVolumeSizeMaster),
OSDisk: &compute.VirtualMachineScaleSetOSDisk{
OSType: to.Ptr(compute.OperatingSystemTypesLinux),
CreateOption: to.Ptr(compute.DiskCreateOptionTypesFromImage),
DiskSizeGB: to.Ptr[int32](defaults.DefaultVolumeSizeMaster),
ManagedDisk: &compute.VirtualMachineScaleSetManagedDiskParameters{
StorageAccountType: compute.StorageAccountTypesPremiumLRS,
StorageAccountType: to.Ptr(compute.StorageAccountTypesStandardSSDLRS),
},
Caching: compute.CachingTypes(compute.HostCachingReadWrite),
Caching: to.Ptr(compute.CachingTypesReadWrite),
},
},
},
@ -221,17 +219,17 @@ func TestParseImage(t *testing.T) {
image: "Canonical:UbuntuServer:18.04-LTS:latest",
success: true,
imageRef: &compute.ImageReference{
Publisher: to.StringPtr("Canonical"),
Offer: to.StringPtr("UbuntuServer"),
Sku: to.StringPtr("18.04-LTS"),
Version: to.StringPtr("latest"),
Publisher: to.Ptr("Canonical"),
Offer: to.Ptr("UbuntuServer"),
SKU: to.Ptr("18.04-LTS"),
Version: to.Ptr("latest"),
},
},
{
image: "/subscriptions/<subscription id>/resourceGroups/<resource group>/providers/<provider>/images/<image>",
success: true,
imageRef: &compute.ImageReference{
ID: to.StringPtr("/subscriptions/<subscription id>/resourceGroups/<resource group>/providers/<provider>/images/<image>"),
ID: to.Ptr("/subscriptions/<subscription id>/resourceGroups/<resource group>/providers/<provider>/images/<image>"),
},
},
{

View File

@ -392,7 +392,7 @@ func (b *MasterVolumeBuilder) addAzureVolume(
},
SizeGB: fi.PtrTo(volumeSize),
Tags: tags,
Zones: &[]string{zoneNumber},
Zones: []*string{&zoneNumber},
}
c.AddTask(t)