|
226 | 226 | "appGatewayNamePrefix": "appg",
|
227 | 227 | "aksVnetAddressPrefix": "10.10.0.0/16",
|
228 | 228 | "aksClusterSubnetPrefix": "10.10.0.0/21",
|
| 229 | + "appGatewaySubnetPrefixes": [ |
| 230 | + "10.10.8.0/24", |
| 231 | + "10.10.9.0/24", |
| 232 | + "10.10.10.0/24", |
| 233 | + "10.10.11.0/24" |
| 234 | + ], |
229 | 235 | "firewallSubnetPrefix": "10.10.12.0/24",
|
230 | 236 | "firewallSubnetName": "AzureFirewallSubnet",
|
231 | 237 | "aksVnetNamePrefix": "vnet",
|
|
252 | 258 | "applicationGatewayMinCapacity": 1,
|
253 | 259 | "aksVnetName": "[uniqueString(variables('aksVnetNamePrefix'), resourceGroup().id)]",
|
254 | 260 | "aksClusterSubnetName": "[uniqueString(variables('aksClusterSubnetNamePrefix'), resourceGroup().id)]",
|
255 |
| - "appGatewaySubnetName": "[concat(parameters('environmentName'),'-agsn-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]", |
256 |
| - "appGatewaySubnetPrefix": "10.10.8.0/24", |
| 261 | + "appGatewaySubnetIndex": 0, |
257 | 262 | "appGatewayPublicIpName": "[concat(parameters('environmentName'),'-agip-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
258 | 263 | "appGatewayPublicDnsName": "[concat(parameters('environmentName'),'-ingest-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
259 | 264 | "appInsightsName": "[concat(parameters('environmentName'),uniqueString(variables('aiNamePrefix'),resourceGroup().id))]",
|
|
291 | 296 | "applicationGatewayMinCapacity": 1,
|
292 | 297 | "aksVnetName": "[uniqueString(variables('aksVnetNamePrefix'), resourceGroup().id)]",
|
293 | 298 | "aksClusterSubnetName": "[uniqueString(variables('aksClusterSubnetNamePrefix'), resourceGroup().id)]",
|
294 |
| - "appGatewaySubnetName": "[concat(parameters('environmentName'),'-agsn-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]", |
295 |
| - "appGatewaySubnetPrefix": "10.10.9.0/24", |
| 299 | + "appGatewaySubnetIndex": 1, |
296 | 300 | "appGatewayPublicIpName": "[concat(parameters('environmentName'),'-agip-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
297 | 301 | "appGatewayPublicDnsName": "[concat(parameters('environmentName'),'-ingest-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
298 | 302 | "appInsightsName": "[concat(parameters('environmentName'),uniqueString(variables('aiNamePrefix'),resourceGroup().id))]",
|
|
330 | 334 | "applicationGatewayMinCapacity": 2,
|
331 | 335 | "aksVnetName": "[uniqueString(variables('aksVnetNamePrefix'), resourceGroup().id)]",
|
332 | 336 | "aksClusterSubnetName": "[uniqueString(variables('aksClusterSubnetNamePrefix'), resourceGroup().id)]",
|
333 |
| - "appGatewaySubnetName": "[concat(parameters('environmentName'),'-agsn-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]", |
334 |
| - "appGatewaySubnetPrefix": "10.10.10.0/24", |
| 337 | + "appGatewaySubnetIndex": 2, |
335 | 338 | "appGatewayPublicIpName": "[concat(parameters('environmentName'),'-agip-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
336 | 339 | "appGatewayPublicDnsName": "[concat(parameters('environmentName'),'-ingest-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
337 | 340 | "appInsightsName": "[concat(parameters('environmentName'),uniqueString(variables('aiNamePrefix'),resourceGroup().id))]",
|
|
369 | 372 | "applicationGatewayMinCapacity": 2,
|
370 | 373 | "aksVnetName": "[uniqueString(variables('aksVnetNamePrefix'), resourceGroup().id)]",
|
371 | 374 | "aksClusterSubnetName": "[uniqueString(variables('aksClusterSubnetNamePrefix'), resourceGroup().id)]",
|
372 |
| - "appGatewaySubnetName": "[concat(parameters('environmentName'),'-agsn-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]", |
373 |
| - "appGatewaySubnetPrefix": "10.10.11.0/24", |
| 375 | + "appGatewaySubnetIndex": 3, |
374 | 376 | "appGatewayPublicIpName": "[concat(parameters('environmentName'),'-agip-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
375 | 377 | "appGatewayPublicDnsName": "[concat(parameters('environmentName'),'-ingest-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id))]",
|
376 | 378 | "appInsightsName": "[concat(parameters('environmentName'),uniqueString(variables('aiNamePrefix'),resourceGroup().id))]",
|
|
398 | 400 | "workspaceSku": "PerGB2018",
|
399 | 401 | "workspaceRetentionInDays": 730
|
400 | 402 | }
|
401 |
| - } |
| 403 | + }, |
| 404 | + "aksClusterSubnet": { |
| 405 | + "name": "[variables('environmentSettings')[parameters('environmentName')].aksClusterSubnetName]", |
| 406 | + "properties": { |
| 407 | + "addressPrefix": "[variables('aksClusterSubnetPrefix')]", |
| 408 | + "privateEndpointNetworkPolicies": "Enabled", |
| 409 | + "privateLinkServiceNetworkPolicies": "Enabled" |
| 410 | + } |
| 411 | + }, |
| 412 | + "firewallSubnet": { |
| 413 | + "name": "[variables('firewallSubnetName')]", |
| 414 | + "properties": { |
| 415 | + "addressPrefix": "[variables('firewallSubnetPrefix')]", |
| 416 | + "serviceEndpoints": [ |
| 417 | + { |
| 418 | + "service": "Microsoft.KeyVault", |
| 419 | + "locations": [ |
| 420 | + "[resourceGroup().location]" |
| 421 | + ] |
| 422 | + }, |
| 423 | + { |
| 424 | + "service": "Microsoft.AzureCosmosDB", |
| 425 | + "locations": [ |
| 426 | + "[resourceGroup().location]" |
| 427 | + ] |
| 428 | + }, |
| 429 | + { |
| 430 | + "service": "Microsoft.Storage", |
| 431 | + "locations": [ |
| 432 | + "[resourceGroup().location]" |
| 433 | + ] |
| 434 | + }, |
| 435 | + { |
| 436 | + "service": "Microsoft.ServiceBus", |
| 437 | + "locations": [ |
| 438 | + "[resourceGroup().location]" |
| 439 | + ] |
| 440 | + } |
| 441 | + ] |
| 442 | + } |
| 443 | + }, |
| 444 | + "copy": [ |
| 445 | + { |
| 446 | + "name": "appGatewaySubnetsLoop", |
| 447 | + "count": "[length(variables('appGatewaySubnetPrefixes'))]", |
| 448 | + "input": { |
| 449 | + "name": "[concat('agsn-', uniqueString(variables('appGatewayNamePrefix'), resourceGroup().id), copyIndex('appGatewaySubnetsLoop'))]", |
| 450 | + "properties": { |
| 451 | + "addressPrefix": "[variables('appGatewaySubnetPrefixes')[copyIndex('appGatewaySubnetsLoop')]]" |
| 452 | + } |
| 453 | + } |
| 454 | + } |
| 455 | + ] |
402 | 456 | },
|
403 | 457 | "resources": [
|
404 | 458 | {
|
|
477 | 531 | "[variables('aksVnetAddressPrefix')]"
|
478 | 532 | ]
|
479 | 533 | },
|
480 |
| - "subnets": [ |
481 |
| - { |
482 |
| - "name": "[variables('environmentSettings')[parameters('environmentName')].aksClusterSubnetName]", |
483 |
| - "properties": { |
484 |
| - "addressPrefix": "[variables('aksClusterSubnetPrefix')]", |
485 |
| - "privateEndpointNetworkPolicies": "Enabled", |
486 |
| - "privateLinkServiceNetworkPolicies": "Enabled" |
487 |
| - } |
488 |
| - }, |
489 |
| - { |
490 |
| - "name": "[variables('firewallSubnetName')]", |
491 |
| - "properties": { |
492 |
| - "addressPrefix": "[variables('firewallSubnetPrefix')]", |
493 |
| - "serviceEndpoints": [ |
494 |
| - { |
495 |
| - "service": "Microsoft.KeyVault", |
496 |
| - "locations": [ |
497 |
| - "[resourceGroup().location]" |
498 |
| - ] |
499 |
| - }, |
500 |
| - { |
501 |
| - "service": "Microsoft.AzureCosmosDB", |
502 |
| - "locations": [ |
503 |
| - "[resourceGroup().location]" |
504 |
| - ] |
505 |
| - }, |
506 |
| - { |
507 |
| - "service": "Microsoft.Storage", |
508 |
| - "locations": [ |
509 |
| - "[resourceGroup().location]" |
510 |
| - ] |
511 |
| - }, |
512 |
| - { |
513 |
| - "service": "Microsoft.ServiceBus", |
514 |
| - "locations": [ |
515 |
| - "[resourceGroup().location]" |
516 |
| - ] |
517 |
| - } |
518 |
| - ] |
519 |
| - } |
520 |
| - }, |
521 |
| - { |
522 |
| - "name": "[variables('environmentSettings')[parameters('environmentName')].appGatewaySubnetName]", |
523 |
| - "properties": { |
524 |
| - "addressPrefix": "[variables('environmentSettings')[parameters('environmentName')].appGatewaySubnetPrefix]" |
525 |
| - } |
526 |
| - } |
527 |
| - ] |
| 534 | + "subnets": "[concat(createArray(variables('aksClusterSubnet'), variables('firewallSubnet')), variables('appGatewaySubnetsLoop'))]" |
528 | 535 | }
|
529 | 536 | },
|
530 | 537 | {
|
|
572 | 579 | "name": "appGatewayIpConfig",
|
573 | 580 | "properties": {
|
574 | 581 | "subnet": {
|
575 |
| - "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('environmentSettings')[parameters('environmentName')].aksVnetName, variables('environmentSettings')[parameters('environmentName')].appGatewaySubnetName)]" |
| 582 | + "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', variables('environmentSettings')[parameters('environmentName')].aksVnetName, variables('appGatewaySubnetsLoop')[variables('environmentSettings')[parameters('environmentName')].appGatewaySubnetIndex].name)]" |
576 | 583 | }
|
577 | 584 | }
|
578 | 585 | }
|
|
1584 | 1591 | "type": "string"
|
1585 | 1592 | },
|
1586 | 1593 | "appGatewaySubnetPrefix": {
|
1587 |
| - "value": "[variables('environmentSettings')[parameters('environmentName')].appGatewaySubnetPrefix]", |
| 1594 | + "value": "[variables('appGatewaySubnetsLoop')[variables('environmentSettings')[parameters('environmentName')].appGatewaySubnetIndex].properties.addressPrefix]", |
1588 | 1595 | "type": "string"
|
1589 | 1596 | },
|
1590 | 1597 | "aksVNetName": {
|
|
0 commit comments