Skip to content

Commit 1352fa2

Browse files
authored
Merge pull request #2185 from k8s-infra-cherrypick-robot/cherry-pick-2176-to-release-1.2
[release-1.2] Fix outbound lb conversion for v1alpha3 clusters
2 parents bd37f1c + 3669e52 commit 1352fa2

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

api/v1alpha3/azurecluster_conversion.go

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,37 +42,42 @@ func (src *AzureCluster) ConvertTo(dstRaw conversion.Hub) error {
4242
dst.Annotations = nil
4343
}
4444
}
45+
46+
// set default control plane outbound lb for private v1alpha3 clusters.
47+
if src.Spec.NetworkSpec.APIServerLB.Type == Internal {
48+
dst.Spec.NetworkSpec.ControlPlaneOutboundLB = &infrav1beta1.LoadBalancerSpec{
49+
FrontendIPsCount: pointer.Int32Ptr(1),
50+
}
51+
// We also need to set the defaults here because "get" won't set defaults, and hence there is no mismatch when a client
52+
// gets a v1alpha3 cluster.
53+
dst.SetControlPlaneOutboundLBDefaults()
54+
}
55+
56+
// set default node plane outbound lb for all v1alpha3 clusters.
57+
dst.Spec.NetworkSpec.NodeOutboundLB = &infrav1beta1.LoadBalancerSpec{
58+
FrontendIPsCount: pointer.Int32Ptr(1),
59+
}
60+
// We also need to set the defaults here because "get" won't set defaults, and hence there is no mismatch when a client
61+
// gets a v1alpha3 cluster.
62+
dst.SetNodeOutboundLBDefaults()
63+
4564
// Manually restore data.
4665
restored := &infrav1beta1.AzureCluster{}
4766
if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok {
4867
return err
4968
}
5069

70+
// override outbound lb if it's present in restored.
71+
dst.Spec.NetworkSpec.ControlPlaneOutboundLB = restored.Spec.NetworkSpec.ControlPlaneOutboundLB
72+
dst.Spec.NetworkSpec.NodeOutboundLB = restored.Spec.NetworkSpec.NodeOutboundLB
73+
5174
dst.Spec.NetworkSpec.PrivateDNSZoneName = restored.Spec.NetworkSpec.PrivateDNSZoneName
5275

5376
dst.Spec.NetworkSpec.APIServerLB.FrontendIPsCount = restored.Spec.NetworkSpec.APIServerLB.FrontendIPsCount
5477
dst.Spec.NetworkSpec.APIServerLB.IdleTimeoutInMinutes = restored.Spec.NetworkSpec.APIServerLB.IdleTimeoutInMinutes
5578
dst.Spec.CloudProviderConfigOverrides = restored.Spec.CloudProviderConfigOverrides
5679
dst.Spec.BastionSpec = restored.Spec.BastionSpec
5780

58-
// set default control plane outbound lb for private v1alpha3 clusters
59-
if src.Spec.NetworkSpec.APIServerLB.Type == Internal && restored.Spec.NetworkSpec.ControlPlaneOutboundLB == nil {
60-
dst.Spec.NetworkSpec.ControlPlaneOutboundLB = &infrav1beta1.LoadBalancerSpec{
61-
FrontendIPsCount: pointer.Int32Ptr(1),
62-
}
63-
} else {
64-
dst.Spec.NetworkSpec.ControlPlaneOutboundLB = restored.Spec.NetworkSpec.ControlPlaneOutboundLB
65-
}
66-
67-
// set default node plane outbound lb for all v1alpha3 clusters
68-
if restored.Spec.NetworkSpec.NodeOutboundLB == nil {
69-
dst.Spec.NetworkSpec.NodeOutboundLB = &infrav1beta1.LoadBalancerSpec{
70-
FrontendIPsCount: pointer.Int32Ptr(1),
71-
}
72-
} else {
73-
dst.Spec.NetworkSpec.NodeOutboundLB = restored.Spec.NetworkSpec.NodeOutboundLB
74-
}
75-
7681
// Here we manually restore outbound security rules. Since v1alpha3 only supports ingress ("Inbound") rules, all v1alpha4/v1beta1 outbound rules are dropped when an AzureCluster
7782
// is converted to v1alpha3. We loop through all security group rules. For all previously existing outbound rules we restore the full rule.
7883
for _, restoredSubnet := range restored.Spec.NetworkSpec.Subnets {

api/v1beta1/azurecluster_default.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ func (c *AzureCluster) setNetworkSpecDefaults() {
5757
c.setSubnetDefaults()
5858
c.setVnetPeeringDefaults()
5959
c.setAPIServerLBDefaults()
60-
c.setNodeOutboundLBDefaults()
61-
c.setControlPlaneOutboundLBDefaults()
60+
c.SetNodeOutboundLBDefaults()
61+
c.SetControlPlaneOutboundLBDefaults()
6262
}
6363

6464
func (c *AzureCluster) setResourceGroupDefault() {
@@ -194,7 +194,7 @@ func (c *AzureCluster) setAPIServerLBDefaults() {
194194
}
195195
}
196196

197-
func (c *AzureCluster) setNodeOutboundLBDefaults() {
197+
func (c *AzureCluster) SetNodeOutboundLBDefaults() {
198198
if c.Spec.NetworkSpec.NodeOutboundLB == nil {
199199
if c.Spec.NetworkSpec.APIServerLB.Type == Internal {
200200
return
@@ -230,7 +230,7 @@ func (c *AzureCluster) setNodeOutboundLBDefaults() {
230230
c.setOutboundLBFrontendIPs(lb, generateNodeOutboundIPName)
231231
}
232232

233-
func (c *AzureCluster) setControlPlaneOutboundLBDefaults() {
233+
func (c *AzureCluster) SetControlPlaneOutboundLBDefaults() {
234234
lb := c.Spec.NetworkSpec.ControlPlaneOutboundLB
235235

236236
if lb == nil {

api/v1beta1/azurecluster_default_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,7 +1596,7 @@ func TestNodeOutboundLBDefaults(t *testing.T) {
15961596
tc := c
15971597
t.Run(tc.name, func(t *testing.T) {
15981598
t.Parallel()
1599-
tc.cluster.setNodeOutboundLBDefaults()
1599+
tc.cluster.SetNodeOutboundLBDefaults()
16001600
if !reflect.DeepEqual(tc.cluster, tc.output) {
16011601
expected, _ := json.MarshalIndent(tc.output, "", "\t")
16021602
actual, _ := json.MarshalIndent(tc.cluster, "", "\t")
@@ -1728,7 +1728,7 @@ func TestControlPlaneOutboundLBDefaults(t *testing.T) {
17281728
tc := c
17291729
t.Run(tc.name, func(t *testing.T) {
17301730
t.Parallel()
1731-
tc.cluster.setControlPlaneOutboundLBDefaults()
1731+
tc.cluster.SetControlPlaneOutboundLBDefaults()
17321732
if !reflect.DeepEqual(tc.cluster, tc.output) {
17331733
expected, _ := json.MarshalIndent(tc.output, "", "\t")
17341734
actual, _ := json.MarshalIndent(tc.cluster, "", "\t")

0 commit comments

Comments
 (0)