Skip to content

Commit e60f052

Browse files
committed
default set NATGatway for outbound traffic if not using IPv6
1 parent 2be2128 commit e60f052

35 files changed

+295
-279
lines changed

api/v1beta1/azurecluster_default.go

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,13 @@ func (c *AzureCluster) setSubnetDefaults() {
124124
if subnet.RouteTable.Name == "" {
125125
subnet.RouteTable.Name = generateNodeRouteTableName(c.ObjectMeta.Name)
126126
}
127-
if subnet.IsNatGatewayEnabled() {
127+
128+
if !subnet.IsIPv6Enabled() {
129+
// NAT gateway supports the use of IPv4 public IP addresses for outbound connectivity.
130+
// So default use the NAT gateway for outbound traffic in IPv4 cluster instead of loadbalancer.
131+
if subnet.NatGateway.Name == "" {
132+
subnet.NatGateway.Name = withIndex(generateNatGatewayName(c.ObjectMeta.Name), nodeSubnetCounter)
133+
}
128134
if subnet.NatGateway.NatGatewayIP.Name == "" {
129135
subnet.NatGateway.NatGatewayIP.Name = generateNatGatewayIPName(c.ObjectMeta.Name, subnet.Name)
130136
}
@@ -146,6 +152,11 @@ func (c *AzureCluster) setSubnetDefaults() {
146152
RouteTable: RouteTable{
147153
Name: generateNodeRouteTableName(c.ObjectMeta.Name),
148154
},
155+
NatGateway: NatGateway{
156+
NatGatewayClassSpec: NatGatewayClassSpec{
157+
Name: generateNatGatewayName(c.ObjectMeta.Name),
158+
},
159+
},
149160
}
150161
c.Spec.NetworkSpec.Subnets = append(c.Spec.NetworkSpec.Subnets, nodeSubnet)
151162
}
@@ -208,7 +219,7 @@ func (c *AzureCluster) SetNodeOutboundLBDefaults() {
208219

209220
var needsOutboundLB bool
210221
for _, subnet := range c.Spec.NetworkSpec.Subnets {
211-
if subnet.Role == SubnetNode && !subnet.IsNatGatewayEnabled() {
222+
if subnet.Role == SubnetNode && subnet.IsIPv6Enabled() {
212223
needsOutboundLB = true
213224
break
214225
}
@@ -436,6 +447,11 @@ func generateControlPlaneOutboundIPName(clusterName string) string {
436447
return fmt.Sprintf("pip-%s-controlplane-outbound", clusterName)
437448
}
438449

450+
// generateNatGatewayName generates a NAT gateway name.
451+
func generateNatGatewayName(clusterName string) string {
452+
return fmt.Sprintf("%s-%s", clusterName, "node-natgw")
453+
}
454+
439455
// generateNatGatewayIPName generates a NAT gateway IP name.
440456
func generateNatGatewayIPName(clusterName, subnetName string) string {
441457
return fmt.Sprintf("pip-%s-%s-natgw", clusterName, subnetName)

0 commit comments

Comments
 (0)