Skip to content

Commit 062fe82

Browse files
authored
Merge pull request #4735 from willie-yao/dont-share-vnet-name
Don't include vnet name in template type
2 parents abba169 + 556e8b8 commit 062fe82

13 files changed

+38
-77
lines changed

api/v1beta1/azuremanagedcontrolplane_types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,9 @@ type ManagedControlPlaneVirtualNetwork struct {
379379
// +optional
380380
ResourceGroup string `json:"resourceGroup,omitempty"`
381381

382+
// Name is the name of the virtual network.
383+
Name string `json:"name"`
384+
382385
ManagedControlPlaneVirtualNetworkClassSpec `json:",inline"`
383386
}
384387

api/v1beta1/azuremanagedcontrolplane_webhook_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2445,8 +2445,8 @@ func TestAzureManagedControlPlane_ValidateUpdate(t *testing.T) {
24452445
DNSServiceIP: ptr.To("192.168.0.10"),
24462446
Version: "v1.18.0",
24472447
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
2448+
Name: "test-network",
24482449
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
2449-
Name: "test-network",
24502450
CIDRBlock: "10.0.0.0/8",
24512451
Subnet: ManagedControlPlaneSubnet{
24522452
Name: "test-subnet",
@@ -2493,8 +2493,8 @@ func TestAzureManagedControlPlane_ValidateUpdate(t *testing.T) {
24932493
DNSServiceIP: ptr.To("192.168.0.10"),
24942494
Version: "v1.18.0",
24952495
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
2496+
Name: "test-network",
24962497
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
2497-
Name: "test-network",
24982498
CIDRBlock: "10.0.0.0/8",
24992499
Subnet: ManagedControlPlaneSubnet{
25002500
Name: "test-subnet",
@@ -2519,8 +2519,8 @@ func TestAzureManagedControlPlane_ValidateUpdate(t *testing.T) {
25192519
DNSServiceIP: ptr.To("192.168.0.10"),
25202520
Version: "v1.18.0",
25212521
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
2522+
Name: "test-network",
25222523
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
2523-
Name: "test-network",
25242524
CIDRBlock: "10.0.0.0/8",
25252525
Subnet: ManagedControlPlaneSubnet{
25262526
Name: "test-subnet",
@@ -2541,8 +2541,8 @@ func TestAzureManagedControlPlane_ValidateUpdate(t *testing.T) {
25412541
DNSServiceIP: ptr.To("192.168.0.10"),
25422542
Version: "v1.18.0",
25432543
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
2544+
Name: "test-network",
25442545
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
2545-
Name: "test-network",
25462546
CIDRBlock: "10.0.0.0/8",
25472547
Subnet: ManagedControlPlaneSubnet{
25482548
Name: "test-subnet",
@@ -4028,8 +4028,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
40284028
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
40294029
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
40304030
ResourceGroup: "rg1",
4031+
Name: "vnet1",
40314032
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4032-
Name: "vnet1",
40334033
CIDRBlock: defaultAKSVnetCIDR,
40344034
Subnet: ManagedControlPlaneSubnet{
40354035
Name: "subnet1",
@@ -4056,8 +4056,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
40564056
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
40574057
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
40584058
ResourceGroup: "rg2",
4059+
Name: "vnet1",
40594060
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4060-
Name: "vnet1",
40614061
CIDRBlock: defaultAKSVnetCIDR,
40624062
Subnet: ManagedControlPlaneSubnet{
40634063
Name: "subnet1",
@@ -4084,8 +4084,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
40844084
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
40854085
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
40864086
ResourceGroup: "rg2",
4087+
Name: "vnet1",
40874088
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4088-
Name: "vnet1",
40894089
CIDRBlock: "10.1.0.0/16",
40904090
Subnet: ManagedControlPlaneSubnet{
40914091
Name: "subnet1",
@@ -4112,8 +4112,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
41124112
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
41134113
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
41144114
ResourceGroup: "rg2",
4115+
Name: "vnet1",
41154116
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4116-
Name: "vnet1",
41174117
CIDRBlock: "10.1.0.0/16",
41184118
Subnet: ManagedControlPlaneSubnet{
41194119
Name: "subnet1",
@@ -4139,8 +4139,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
41394139
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
41404140
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
41414141
ResourceGroup: "rg2",
4142+
Name: "vnet1",
41424143
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4143-
Name: "vnet1",
41444144
Subnet: ManagedControlPlaneSubnet{
41454145
Name: "subnet1",
41464146
CIDRBlock: "11.0.0.0/24",
@@ -4166,8 +4166,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
41664166
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
41674167
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
41684168
ResourceGroup: "rg2",
4169+
Name: "vnet1",
41694170
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4170-
Name: "vnet1",
41714171
CIDRBlock: "invalid_vnet_CIDR",
41724172
Subnet: ManagedControlPlaneSubnet{
41734173
Name: "subnet1",
@@ -4194,8 +4194,8 @@ func TestValidateAMCPVirtualNetwork(t *testing.T) {
41944194
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
41954195
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
41964196
ResourceGroup: "rg2",
4197+
Name: "vnet1",
41974198
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
4198-
Name: "vnet1",
41994199
Subnet: ManagedControlPlaneSubnet{
42004200
Name: "subnet1",
42014201
CIDRBlock: "invalid_subnet_CIDR",

api/v1beta1/azuremanagedcontrolplanetemplate_default.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"strings"
2121

2222
"k8s.io/utils/ptr"
23+
ctrl "sigs.k8s.io/controller-runtime"
2324
)
2425

2526
func (mcp *AzureManagedControlPlaneTemplate) setDefaults() {
@@ -39,8 +40,10 @@ func (mcp *AzureManagedControlPlaneTemplate) setDefaults() {
3940

4041
// setDefaultVirtualNetwork sets the default VirtualNetwork for an AzureManagedControlPlaneTemplate.
4142
func (mcp *AzureManagedControlPlaneTemplate) setDefaultVirtualNetwork() {
42-
if mcp.Spec.Template.Spec.VirtualNetwork.Name == "" {
43-
mcp.Spec.Template.Spec.VirtualNetwork.Name = mcp.Name
43+
if mcp.Spec.Template.Spec.VirtualNetwork.Name != "" {
44+
// Being able to set the vnet name in the template type is a bug, as vnet names cannot be reused across clusters.
45+
// To avoid a breaking API change, a warning is logged.
46+
ctrl.Log.WithName("AzureManagedControlPlaneTemplateWebHookLogger").Info("WARNING: VirtualNetwork.Name should not be set in the template. Virtual Network names cannot be shared across clusters.")
4447
}
4548
if mcp.Spec.Template.Spec.VirtualNetwork.CIDRBlock == "" {
4649
mcp.Spec.Template.Spec.VirtualNetwork.CIDRBlock = defaultAKSVnetCIDR

api/v1beta1/azuremanagedcontrolplanetemplate_default_test.go

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -51,47 +51,6 @@ func TestDefaultVirtualNetworkTemplate(t *testing.T) {
5151
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
5252
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
5353
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
54-
Name: "test-cluster-template",
55-
CIDRBlock: defaultAKSVnetCIDR,
56-
},
57-
},
58-
},
59-
},
60-
},
61-
},
62-
},
63-
},
64-
{
65-
name: "custom name",
66-
controlPlaneTemplate: &AzureManagedControlPlaneTemplate{
67-
ObjectMeta: metav1.ObjectMeta{
68-
Name: "test-cluster-template",
69-
},
70-
Spec: AzureManagedControlPlaneTemplateSpec{
71-
Template: AzureManagedControlPlaneTemplateResource{
72-
Spec: AzureManagedControlPlaneTemplateResourceSpec{
73-
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
74-
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
75-
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
76-
Name: "custom-vnet-name",
77-
},
78-
},
79-
},
80-
},
81-
},
82-
},
83-
},
84-
outputTemplate: &AzureManagedControlPlaneTemplate{
85-
ObjectMeta: metav1.ObjectMeta{
86-
Name: "test-cluster-template",
87-
},
88-
Spec: AzureManagedControlPlaneTemplateSpec{
89-
Template: AzureManagedControlPlaneTemplateResource{
90-
Spec: AzureManagedControlPlaneTemplateResourceSpec{
91-
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
92-
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
93-
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
94-
Name: "custom-vnet-name",
9554
CIDRBlock: defaultAKSVnetCIDR,
9655
},
9756
},
@@ -131,7 +90,6 @@ func TestDefaultVirtualNetworkTemplate(t *testing.T) {
13190
AzureManagedControlPlaneClassSpec: AzureManagedControlPlaneClassSpec{
13291
VirtualNetwork: ManagedControlPlaneVirtualNetwork{
13392
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
134-
Name: "test-cluster-template",
13593
CIDRBlock: "10.0.0.16/24",
13694
},
13795
},

api/v1beta1/azuremanagedcontrolplanetemplate_webhook.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -252,13 +252,6 @@ func (mcp *AzureManagedControlPlaneTemplate) validateK8sVersionUpdate(old *Azure
252252
// validateVirtualNetworkTemplateUpdate validates update to VirtualNetworkTemplate.
253253
func (mcp *AzureManagedControlPlaneTemplate) validateVirtualNetworkTemplateUpdate(old *AzureManagedControlPlaneTemplate) field.ErrorList {
254254
var allErrs field.ErrorList
255-
if old.Spec.Template.Spec.VirtualNetwork.Name != mcp.Spec.Template.Spec.VirtualNetwork.Name {
256-
allErrs = append(allErrs,
257-
field.Invalid(
258-
field.NewPath("Spec", "Template", "Spec", "VirtualNetwork.Name"),
259-
mcp.Spec.Template.Spec.VirtualNetwork.Name,
260-
"Virtual Network Name is immutable"))
261-
}
262255

263256
if old.Spec.Template.Spec.VirtualNetwork.CIDRBlock != mcp.Spec.Template.Spec.VirtualNetwork.CIDRBlock {
264257
allErrs = append(allErrs,

api/v1beta1/azuremanagedcontrolplanetemplate_webhook_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ func TestControlPlaneTemplateDefaultingWebhook(t *testing.T) {
3636
g.Expect(*amcpt.Spec.Template.Spec.NetworkPlugin).To(Equal("azure"))
3737
g.Expect(*amcpt.Spec.Template.Spec.LoadBalancerSKU).To(Equal("Standard"))
3838
g.Expect(amcpt.Spec.Template.Spec.Version).To(Equal("v1.17.5"))
39-
g.Expect(amcpt.Spec.Template.Spec.VirtualNetwork.Name).To(Equal("fooName"))
4039
g.Expect(amcpt.Spec.Template.Spec.VirtualNetwork.CIDRBlock).To(Equal(defaultAKSVnetCIDR))
4140
g.Expect(amcpt.Spec.Template.Spec.VirtualNetwork.Subnet.Name).To(Equal("fooName"))
4241
g.Expect(amcpt.Spec.Template.Spec.VirtualNetwork.Subnet.CIDRBlock).To(Equal(defaultAKSNodeSubnetCIDR))
@@ -300,18 +299,18 @@ func TestValidateVirtualNetworkTemplateUpdate(t *testing.T) {
300299
wantErr: false,
301300
},
302301
{
303-
name: "azuremanagedcontrolplanetemplate name is immutable",
302+
name: "azuremanagedcontrolplanetemplate vnet is immutable",
304303
oldControlPlaneTemplate: getAzureManagedControlPlaneTemplate(func(cpt *AzureManagedControlPlaneTemplate) {
305304
cpt.Spec.Template.Spec.VirtualNetwork = ManagedControlPlaneVirtualNetwork{
306305
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
307-
Name: "fooName",
306+
CIDRBlock: "fooCIDRBlock",
308307
},
309308
}
310309
}),
311310
controlPlaneTemplate: getAzureManagedControlPlaneTemplate(func(cpt *AzureManagedControlPlaneTemplate) {
312311
cpt.Spec.Template.Spec.VirtualNetwork = ManagedControlPlaneVirtualNetwork{
313312
ManagedControlPlaneVirtualNetworkClassSpec: ManagedControlPlaneVirtualNetworkClassSpec{
314-
Name: "barName",
313+
CIDRBlock: "barCIDRBlock",
315314
},
316315
}
317316
}),

api/v1beta1/types_class.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,6 @@ type AzureManagedMachinePoolClassSpec struct {
415415

416416
// ManagedControlPlaneVirtualNetworkClassSpec defines the ManagedControlPlaneVirtualNetwork properties that may be shared across several managed control plane vnets.
417417
type ManagedControlPlaneVirtualNetworkClassSpec struct {
418-
Name string `json:"name"`
419418
CIDRBlock string `json:"cidrBlock"`
420419
// +optional
421420
Subnet ManagedControlPlaneSubnet `json:"subnet,omitempty"`

azure/scope/managedcontrolplane_test.go

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1349,8 +1349,8 @@ func TestManagedControlPlaneScope_PrivateEndpointSpecs(t *testing.T) {
13491349
SubscriptionID: "00000000-0000-0000-0000-000000000001",
13501350
VirtualNetwork: infrav1.ManagedControlPlaneVirtualNetwork{
13511351
ResourceGroup: "dummy-rg",
1352+
Name: "vnet1",
13521353
ManagedControlPlaneVirtualNetworkClassSpec: infrav1.ManagedControlPlaneVirtualNetworkClassSpec{
1353-
Name: "vnet1",
13541354
Subnet: infrav1.ManagedControlPlaneSubnet{
13551355
Name: "subnet1",
13561356
PrivateEndpoints: infrav1.PrivateEndpoints{
@@ -1707,9 +1707,7 @@ func TestManagedControlPlaneScope_GroupSpecs(t *testing.T) {
17071707
ResourceGroupName: "dummy-rg",
17081708
AzureManagedControlPlaneClassSpec: infrav1.AzureManagedControlPlaneClassSpec{
17091709
VirtualNetwork: infrav1.ManagedControlPlaneVirtualNetwork{
1710-
ManagedControlPlaneVirtualNetworkClassSpec: infrav1.ManagedControlPlaneVirtualNetworkClassSpec{
1711-
Name: "vnet1",
1712-
},
1710+
Name: "vnet1",
17131711
},
17141712
},
17151713
},
@@ -1740,9 +1738,7 @@ func TestManagedControlPlaneScope_GroupSpecs(t *testing.T) {
17401738
AzureManagedControlPlaneClassSpec: infrav1.AzureManagedControlPlaneClassSpec{
17411739
VirtualNetwork: infrav1.ManagedControlPlaneVirtualNetwork{
17421740
ResourceGroup: "my_custom_rg",
1743-
ManagedControlPlaneVirtualNetworkClassSpec: infrav1.ManagedControlPlaneVirtualNetworkClassSpec{
1744-
Name: "vnet1",
1745-
},
1741+
Name: "vnet1",
17461742
},
17471743
},
17481744
},

azure/scope/managedmachinepool_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -711,8 +711,8 @@ func TestManagedMachinePoolScope_SubnetName(t *testing.T) {
711711
AzureManagedControlPlaneClassSpec: infrav1.AzureManagedControlPlaneClassSpec{
712712
SubscriptionID: "00000000-0000-0000-0000-000000000000",
713713
VirtualNetwork: infrav1.ManagedControlPlaneVirtualNetwork{
714+
Name: "my-vnet",
714715
ManagedControlPlaneVirtualNetworkClassSpec: infrav1.ManagedControlPlaneVirtualNetworkClassSpec{
715-
Name: "my-vnet",
716716
Subnet: infrav1.ManagedControlPlaneSubnet{
717717
Name: "my-vnet-subnet",
718718
},
@@ -755,8 +755,8 @@ func TestManagedMachinePoolScope_SubnetName(t *testing.T) {
755755
AzureManagedControlPlaneClassSpec: infrav1.AzureManagedControlPlaneClassSpec{
756756
SubscriptionID: "00000000-0000-0000-0000-000000000000",
757757
VirtualNetwork: infrav1.ManagedControlPlaneVirtualNetwork{
758+
Name: "my-vnet",
758759
ManagedControlPlaneVirtualNetworkClassSpec: infrav1.ManagedControlPlaneVirtualNetworkClassSpec{
759-
Name: "my-vnet",
760760
Subnet: infrav1.ManagedControlPlaneSubnet{
761761
Name: "my-vnet-subnet",
762762
},

config/crd/bases/infrastructure.cluster.x-k8s.io_azuremanagedcontrolplanes.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,7 @@ spec:
763763
cidrBlock:
764764
type: string
765765
name:
766+
description: Name is the name of the virtual network.
766767
type: string
767768
resourceGroup:
768769
description: ResourceGroup is the name of the Azure resource group

0 commit comments

Comments
 (0)