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 ( import (
"fmt" "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/pkg/apis/kops"
"k8s.io/kops/upup/pkg/fi" "k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup/azuretasks" "k8s.io/kops/upup/pkg/fi/cloudup/azuretasks"
@ -57,14 +57,14 @@ func (b *APILoadBalancerModelBuilder) Build(c *fi.CloudupModelBuilderContext) er
switch lbSpec.Type { switch lbSpec.Type {
case kops.LoadBalancerTypeInternal: case kops.LoadBalancerTypeInternal:
lb.External = to.BoolPtr(false) lb.External = to.Ptr(false)
subnet, err := b.subnetForLoadBalancer() subnet, err := b.subnetForLoadBalancer()
if err != nil { if err != nil {
return err return err
} }
lb.Subnet = b.LinkToAzureSubnet(subnet) lb.Subnet = b.LinkToAzureSubnet(subnet)
case kops.LoadBalancerTypePublic: case kops.LoadBalancerTypePublic:
lb.External = to.BoolPtr(true) lb.External = to.Ptr(true)
// Create Public IP Address for Public Loadbalacer // Create Public IP Address for Public Loadbalacer
p := &azuretasks.PublicIPAddress{ p := &azuretasks.PublicIPAddress{

View File

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

View File

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

View File

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