@@ -179,7 +179,20 @@ func GenerateClusterAssets(installConfig *installconfig.InstallConfig, clusterID
179179
180180 azEnv := string (installConfig .Azure .CloudName )
181181
182- computeSubnetSpec := capz.SubnetSpec {
182+ subnetSpec := capz.Subnets {
183+ {
184+ SubnetClassSpec : capz.SubnetClassSpec {
185+ Name : controlPlaneSubnet ,
186+ Role : capz .SubnetControlPlane ,
187+ CIDRBlocks : []string {
188+ subnets [0 ].String (),
189+ },
190+ },
191+ SecurityGroup : securityGroup ,
192+ },
193+ }
194+
195+ computeSubnetSpec := []capz.SubnetSpec {{
183196 ID : nodeSubnetID ,
184197 SubnetClassSpec : capz.SubnetClassSpec {
185198 Name : computeSubnet ,
@@ -189,14 +202,36 @@ func GenerateClusterAssets(installConfig *installconfig.InstallConfig, clusterID
189202 },
190203 },
191204 SecurityGroup : securityGroup ,
192- }
205+ }}
193206
194207 if installConfig .Config .Azure .OutboundType == azure .NATGatewaySingleZoneOutboundType {
195- computeSubnetSpec .NatGateway = capz.NatGateway {
208+ computeSubnetSpec [ 0 ] .NatGateway = capz.NatGateway {
196209 NatGatewayClassSpec : capz.NatGatewayClassSpec {Name : fmt .Sprintf ("%s-natgw" , clusterID .InfraID )},
197210 }
211+ } else if installConfig .Config .Azure .OutboundType == azure .NATGatewayMultiZoneOutboundType {
212+ computeSubnetSpec = []capz.SubnetSpec {}
213+ for index , spec := range installConfig .Config .Azure .NatGatewaySpec {
214+ computeSubnetSpec = append (computeSubnetSpec , capz.SubnetSpec {
215+ ID : "UNKNOWN" ,
216+ SubnetClassSpec : capz.SubnetClassSpec {
217+ Name : computeSubnet ,
218+ Role : capz .SubnetNode ,
219+ CIDRBlocks : []string {
220+ spec .Subnet ,
221+ },
222+ },
223+ NatGateway : capz.NatGateway {
224+ NatGatewayIP : capz.PublicIPSpec {
225+ Name : fmt .Sprintf ("%s-natgw-public-ip-%d" , clusterID .InfraID , index ),
226+ },
227+ NatGatewayClassSpec : capz.NatGatewayClassSpec {Name : spec .Name },
228+ },
229+ SecurityGroup : securityGroup ,
230+ })
231+ }
198232 }
199233
234+ subnetSpec = append (subnetSpec , computeSubnetSpec ... )
200235 azureCluster := & capz.AzureCluster {
201236 ObjectMeta : metav1.ObjectMeta {
202237 Name : clusterID .InfraID ,
@@ -236,19 +271,7 @@ func GenerateClusterAssets(installConfig *installconfig.InstallConfig, clusterID
236271 },
237272 APIServerLB : & apiServerLB ,
238273 ControlPlaneOutboundLB : controlPlaneOutboundLB ,
239- Subnets : capz.Subnets {
240- {
241- SubnetClassSpec : capz.SubnetClassSpec {
242- Name : controlPlaneSubnet ,
243- Role : capz .SubnetControlPlane ,
244- CIDRBlocks : []string {
245- subnets [0 ].String (),
246- },
247- },
248- SecurityGroup : securityGroup ,
249- },
250- computeSubnetSpec ,
251- },
274+ Subnets : subnetSpec ,
252275 },
253276 },
254277 }
0 commit comments