|
27 | 27 | "description": "Custom naming for the deployed FortiGate resources. This will override the automatic generation based on the prefix for the FortiGate name." |
28 | 28 | } |
29 | 29 | }, |
30 | | - "fortiGateLicenseType": { |
| 30 | + "fortiGateImageSKU_x64": { |
31 | 31 | "type": "string", |
32 | | - "defaultValue": "fortinet_fg-vm_byol", |
| 32 | + "defaultValue": "fortinet_fg-vm", |
33 | 33 | "allowedValues": [ |
34 | | - "fortinet_fg-vm_byol", |
35 | | - "fortinet_fg-vm_payg" |
| 34 | + "fortinet_fg-vm", |
| 35 | + "fortinet_fg-vm_payg_2023" |
| 36 | + ], |
| 37 | + "metadata": { |
| 38 | + "description": "Identifies whether to to use PAYG (on demand licensing) or BYOL license model (where license is purchased separately" |
| 39 | + } |
| 40 | + }, |
| 41 | + "fortiGateImageSKU_x64_g2": { |
| 42 | + "type": "string", |
| 43 | + "defaultValue": "fortinet_fg-vm_g2", |
| 44 | + "allowedValues": [ |
| 45 | + "fortinet_fg-vm_g2", |
| 46 | + "fortinet_fg-vm_payg_2023_g2" |
| 47 | + ], |
| 48 | + "metadata": { |
| 49 | + "description": "Identifies whether to to use PAYG (on demand licensing) or BYOL license model (where license is purchased separately" |
| 50 | + } |
| 51 | + }, |
| 52 | + "fortiGateImageSKU_arm64": { |
| 53 | + "type": "string", |
| 54 | + "defaultValue": "fortinet_fg-vm_arm64", |
| 55 | + "allowedValues": [ |
| 56 | + "fortinet_fg-vm_arm64", |
| 57 | + "fortinet_fg-vm_payg_2023_arm64" |
36 | 58 | ], |
37 | 59 | "metadata": { |
38 | 60 | "description": "Identifies whether to to use PAYG (on demand licensing) or BYOL license model (where license is purchased separately" |
|
43 | 65 | "defaultValue": "x64", |
44 | 66 | "allowedValues": [ |
45 | 67 | "x64", |
46 | | - "_g2", |
47 | | - "_arm64" |
| 68 | + "x64_g2", |
| 69 | + "arm64" |
48 | 70 | ], |
49 | 71 | "metadata": { |
50 | 72 | "description": "Indicates the instance Architecture of the VM deployment. Intel/AMD, Intel/AMD gen2 VM or ARM" |
51 | 73 | } |
52 | 74 | }, |
53 | 75 | "fortiGateImageVersion_x64": { |
54 | 76 | "type": "string", |
55 | | - "defaultValue": "7.4.11", |
| 77 | + "defaultValue": "7.4.7", |
56 | 78 | "allowedValues": [ |
57 | | - "7.4.11", |
58 | | - "7.2.13", |
59 | | - "7.0.19" |
| 79 | + "latest", |
| 80 | + "7.6.0", |
| 81 | + "7.4.9", |
| 82 | + "7.4.8", |
| 83 | + "7.4.7", |
| 84 | + "7.4.6", |
| 85 | + "7.4.5", |
| 86 | + "7.4.4", |
| 87 | + "7.4.3", |
| 88 | + "7.4.2", |
| 89 | + "7.4.1", |
| 90 | + "7.4.0", |
| 91 | + "7.2.12", |
| 92 | + "7.2.11", |
| 93 | + "7.2.10", |
| 94 | + "7.2.9", |
| 95 | + "7.2.8", |
| 96 | + "7.2.7", |
| 97 | + "7.2.6", |
| 98 | + "7.2.5", |
| 99 | + "7.2.4", |
| 100 | + "7.2.3", |
| 101 | + "7.2.2", |
| 102 | + "7.2.1", |
| 103 | + "7.2.0", |
| 104 | + "7.0.17", |
| 105 | + "7.0.15", |
| 106 | + "7.0.14", |
| 107 | + "7.0.13", |
| 108 | + "7.0.12", |
| 109 | + "7.0.11", |
| 110 | + "7.0.10", |
| 111 | + "7.0.9", |
| 112 | + "7.0.8", |
| 113 | + "7.0.6", |
| 114 | + "7.0.5", |
| 115 | + "7.0.4", |
| 116 | + "7.0.3", |
| 117 | + "7.0.2", |
| 118 | + "7.0.1", |
| 119 | + "7.0.0", |
| 120 | + "6.4.16", |
| 121 | + "6.4.15", |
| 122 | + "6.4.13", |
| 123 | + "6.4.12", |
| 124 | + "6.4.11", |
| 125 | + "6.4.10", |
| 126 | + "6.4.9", |
| 127 | + "6.4.8", |
| 128 | + "6.4.7", |
| 129 | + "6.4.6", |
| 130 | + "6.4.5", |
| 131 | + "6.4.3", |
| 132 | + "6.4.2", |
| 133 | + "6.4.0", |
| 134 | + "6.2.5", |
| 135 | + "6.2.4", |
| 136 | + "6.2.2", |
| 137 | + "6.2.0" |
60 | 138 | ], |
61 | 139 | "metadata": { |
62 | | - "description": "Select the image version supporting Generation 1 VMs" |
| 140 | + "description": "Select the image version" |
63 | 141 | } |
64 | 142 | }, |
65 | 143 | "fortiGateImageVersion_x64_g2": { |
66 | 144 | "type": "string", |
67 | | - "defaultValue": "7.6.6", |
| 145 | + "defaultValue": "7.6.200", |
68 | 146 | "allowedValues": [ |
69 | | - "7.6.6" |
| 147 | + "latest", |
| 148 | + "7.6.200", |
| 149 | + "7.6.100", |
| 150 | + "7.6.4", |
| 151 | + "7.6.3" |
70 | 152 | ], |
71 | 153 | "metadata": { |
72 | 154 | "description": "Select the image version supporting Generation 2 VMs" |
73 | 155 | } |
74 | 156 | }, |
75 | 157 | "fortiGateImageVersion_arm64": { |
76 | 158 | "type": "string", |
77 | | - "defaultValue": "7.6.6", |
| 159 | + "defaultValue": "7.6.2", |
78 | 160 | "allowedValues": [ |
79 | | - "7.6.6", |
| 161 | + "latest", |
| 162 | + "7.6.5", |
| 163 | + "7.6.4", |
| 164 | + "7.6.3", |
| 165 | + "7.6.2", |
| 166 | + "7.6.1", |
| 167 | + "7.6.0", |
80 | 168 | "7.4.11", |
81 | | - "7.2.13" |
| 169 | + "7.4.9", |
| 170 | + "7.4.8", |
| 171 | + "7.4.7", |
| 172 | + "7.4.6", |
| 173 | + "7.4.5", |
| 174 | + "7.4.4", |
| 175 | + "7.4.3", |
| 176 | + "7.2.12", |
| 177 | + "7.2.11", |
| 178 | + "7.2.10", |
| 179 | + "7.2.9", |
| 180 | + "7.2.8" |
82 | 181 | ], |
83 | 182 | "metadata": { |
84 | | - "description": "Select the image version supporting ARM64 VMs" |
| 183 | + "description": "Select the image version" |
85 | 184 | } |
86 | 185 | }, |
87 | 186 | "fortiGateAdditionalCustomData": { |
|
93 | 192 | }, |
94 | 193 | "instanceType_x64": { |
95 | 194 | "type": "string", |
96 | | - "defaultValue": "Standard_D4s_v4", |
| 195 | + "defaultValue": "Standard_D2s_v3", |
97 | 196 | "allowedValues": [ |
98 | 197 | "Standard_F2s", |
99 | 198 | "Standard_F4s", |
|
165 | 264 | }, |
166 | 265 | "instanceType_x64_g2": { |
167 | 266 | "type": "string", |
168 | | - "defaultValue": "Standard_D4s_v5", |
| 267 | + "defaultValue": "Standard_D2s_v6", |
169 | 268 | "allowedValues": [ |
170 | 269 | "Standard_D2_v4", |
171 | 270 | "Standard_D4_v4", |
|
254 | 353 | }, |
255 | 354 | "instanceType_arm64": { |
256 | 355 | "type": "string", |
257 | | - "defaultValue": "Standard_D4ps_v6", |
| 356 | + "defaultValue": "Standard_D2ps_v6", |
258 | 357 | "allowedValues": [ |
259 | 358 | "Standard_D2ps_v6", |
260 | 359 | "Standard_D4ps_v6", |
|
534 | 633 | "description": "By default, the deployment will use Azure Marketplace images. In specific cases, using BYOL custom FortiGate images can be deployed from support.fortinet.com." |
535 | 634 | } |
536 | 635 | }, |
537 | | - "customVHDSource": { |
538 | | - "type": "string", |
539 | | - "defaultValue": "fortinetsite", |
540 | | - "allowedValues": [ |
541 | | - "fortinetsite", |
542 | | - "marketplace" |
543 | | - ], |
544 | | - "metadata": { |
545 | | - "description": "Select fortinetsite if the BYOL FortiGate image was downloaded from support.fortinet.com. Select marketplace if the image originates from the Azure Marketplace." |
546 | | - } |
547 | | - }, |
548 | 636 | "location": { |
549 | 637 | "type": "string", |
550 | 638 | "defaultValue": "[resourceGroup().location]", |
|
567 | 655 | }, |
568 | 656 | "variables": { |
569 | 657 | "imagePublisher": "fortinet", |
570 | | - "imageOffer": "fortinet_fortigate-vm", |
571 | | - "VMInstanceArchitecture": "[if(equals(parameters('fortiGateInstanceArchitecture'),'x64'),'',parameters('fortiGateInstanceArchitecture'))]", |
572 | | - "fortiGateImageVersion": "[if(equals(parameters('fortiGateInstanceArchitecture'), '_arm64'), parameters('fortiGateImageVersion_arm64'), if(equals(parameters('fortiGateInstanceArchitecture'), '_g2'),parameters('fortiGateImageVersion_x64_g2'),parameters('fortiGateImageVersion_x64')))]", |
573 | | - "fortiGateImageSKU": "[concat(parameters('fortiGateLicenseType'),'_',take(replace(variables('fortiGateImageVersion'), '.',''), 2),variables('VMInstanceArchitecture'))]", |
574 | | - "instanceType": "[if(equals(parameters('fortiGateInstanceArchitecture'), '_arm64'), parameters('instanceType_arm64'), if(equals(parameters('fortiGateInstanceArchitecture'), '_g2'),parameters('instanceType_x64_g2'),parameters('instanceType_x64')))]", |
575 | | - "diskControllerType": "[if(and(equals(parameters('fortiGateInstanceArchitecture'), '_g2'),contains(parameters('instanceType_x64_g2'), '_v6')),'NVMe',json('null'))]", |
| 658 | + "imageOffer": "fortinet_fortigate-vm_v5", |
| 659 | + "fortiGateImageSKU": "[if(equals(parameters('fortiGateInstanceArchitecture'), 'arm64'), parameters('fortiGateImageSKU_arm64'), if(equals(parameters('fortiGateInstanceArchitecture'), 'x64_g2'),parameters('fortiGateImageSKU_x64_g2'),parameters('fortiGateImageSKU_x64')))]", |
| 660 | + "fortiGateImageVersion": "[if(equals(parameters('fortiGateInstanceArchitecture'), 'arm64'), parameters('fortiGateImageVersion_arm64'), if(equals(parameters('fortiGateInstanceArchitecture'), 'x64_g2'),parameters('fortiGateImageVersion_x64_g2'),parameters('fortiGateImageVersion_x64')))]", |
| 661 | + "instanceType": "[if(equals(parameters('fortiGateInstanceArchitecture'), 'arm64'), parameters('instanceType_arm64'), if(equals(parameters('fortiGateInstanceArchitecture'), 'x64_g2'),parameters('instanceType_x64_g2'),parameters('instanceType_x64')))]", |
| 662 | + "diskControllerType": "[if(and(equals(parameters('fortiGateInstanceArchitecture'), 'x64_g2'),contains(parameters('instanceType_x64_g2'), '_v6'),contains(parameters('fortiGateImageSKU_x64_g2'), '_g2')),'NVMe',json('null'))]", |
576 | 663 | "availabilitySetName": "[if(equals(parameters('existingAvailabilitySetName'),''),concat(parameters('fortiGateNamePrefix'),'-AvailabilitySet'),parameters('existingAvailabilitySetName'))]", |
577 | 664 | "availabilitySetId": { |
578 | 665 | "id": "[resourceId('Microsoft.Compute/availabilitySets', variables('availabilitySetName'))]" |
|
651 | 738 | }, |
652 | 739 | "resources": [ |
653 | 740 | { |
654 | | - "apiVersion": "2025-04-01", |
| 741 | + "apiVersion": "2023-07-01", |
655 | 742 | "name": "[concat(parameters('fortiGateNamePrefix'), '-fortinetdeployment-', uniquestring(resourceGroup().id))]", |
656 | 743 | "type": "Microsoft.Resources/deployments", |
657 | 744 | "properties": { |
|
667 | 754 | "condition": "[and(variables('useAS'),equals(parameters('existingAvailabilitySetName'),''))]", |
668 | 755 | "name": "[variables('availabilitySetName')]", |
669 | 756 | "type": "Microsoft.Compute/availabilitySets", |
670 | | - "apiVersion": "2025-04-01", |
| 757 | + "apiVersion": "2023-03-01", |
671 | 758 | "location": "[parameters('location')]", |
672 | 759 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Compute/availabilitySets'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Compute/availabilitySets']), parameters('fortinetTags')) ]", |
673 | 760 | "properties": { |
|
682 | 769 | "condition": "[equals(parameters('vnetNewOrExisting'), 'new')]", |
683 | 770 | "name": "[variables('vnetName')]", |
684 | 771 | "type": "Microsoft.Network/virtualNetworks", |
685 | | - "apiVersion": "2025-05-01", |
| 772 | + "apiVersion": "2023-06-01", |
686 | 773 | "location": "[parameters('location')]", |
687 | 774 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Network/virtualNetworks'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Network/virtualNetworks']), parameters('fortinetTags')) ]", |
688 | 775 | "dependsOn": [ |
|
723 | 810 | "condition": "[equals(parameters('vnetNewOrExisting'), 'new')]", |
724 | 811 | "type": "Microsoft.Network/routeTables", |
725 | 812 | "name": "[variables('routeTableProtectedName')]", |
726 | | - "apiVersion": "2025-05-01", |
| 813 | + "apiVersion": "2023-06-01", |
727 | 814 | "location": "[parameters('location')]", |
728 | 815 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Network/routeTables'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Network/routeTables']), parameters('fortinetTags')) ]", |
729 | 816 | "properties": { |
|
757 | 844 | { |
758 | 845 | "name": "[variables('nsgName')]", |
759 | 846 | "type": "Microsoft.Network/networkSecurityGroups", |
760 | | - "apiVersion": "2025-05-01", |
| 847 | + "apiVersion": "2023-06-01", |
761 | 848 | "location": "[parameters('location')]", |
762 | 849 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Network/networkSecurityGroups'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Network/networkSecurityGroups']), parameters('fortinetTags')) ]", |
763 | 850 | "properties": { |
|
797 | 884 | "condition": "[equals(parameters('publicIP1NewOrExisting'), 'new')]", |
798 | 885 | "name": "[variables('publicIP1Name')]", |
799 | 886 | "type": "Microsoft.Network/publicIPAddresses", |
800 | | - "apiVersion": "2025-05-01", |
| 887 | + "apiVersion": "2023-06-01", |
801 | 888 | "location": "[parameters('location')]", |
802 | 889 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Network/publicIPAddresses'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Network/publicIPAddresses']), parameters('fortinetTags')) ]", |
803 | 890 | "sku": { |
|
814 | 901 | { |
815 | 902 | "name": "[variables('fgtNic1Name')]", |
816 | 903 | "type": "Microsoft.Network/networkInterfaces", |
817 | | - "apiVersion": "2025-05-01", |
| 904 | + "apiVersion": "2023-06-01", |
818 | 905 | "location": "[parameters('location')]", |
819 | 906 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Network/networkInterfaces'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Network/networkInterfaces'],variables('fastpathtag')), union(parameters('fortinetTags'),variables('fastpathtag'))) ]", |
820 | 907 | "dependsOn": [ |
|
847 | 934 | { |
848 | 935 | "type": "Microsoft.Network/networkInterfaces", |
849 | 936 | "name": "[variables('fgtNic2Name')]", |
850 | | - "apiVersion": "2025-05-01", |
| 937 | + "apiVersion": "2023-06-01", |
851 | 938 | "location": "[parameters('location')]", |
852 | 939 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Network/networkInterfaces'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Network/networkInterfaces'],variables('fastpathtag')), union(parameters('fortinetTags'),variables('fastpathtag'))) ]", |
853 | 940 | "dependsOn": [ |
|
879 | 966 | { |
880 | 967 | "type": "Microsoft.Compute/virtualMachines", |
881 | 968 | "name": "[variables('fgtVmName')]", |
882 | | - "apiVersion": "2025-04-01", |
| 969 | + "apiVersion": "2023-03-01", |
883 | 970 | "tags": "[ if(contains(parameters('tagsByResource'), 'Microsoft.Compute/virtualMachines'), union(parameters('fortinetTags'),parameters('tagsByResource')['Microsoft.Compute/virtualMachines']), parameters('fortinetTags')) ]", |
884 | 971 | "location": "[parameters('location')]", |
885 | 972 | "identity": { |
886 | 973 | "type": "SystemAssigned" |
887 | 974 | }, |
888 | 975 | "zones": "[if(variables('useAZ'), variables('zone1'), json('null'))]", |
889 | | - "plan": "[if(and(or(equals(parameters('fortiGateLicenseType'),'fortinet_fg-vm_byol'),equals(variables('fortiGateImageSKU'),'fortinet_fg-vm_arm64')),not(equals(parameters('customImageReference'),'')),equals(parameters('customVHDSource'),'fortinetsite')), json('null'), variables('virtualMachinePlan'))]", |
| 976 | + "plan": "[if(and(or(equals(variables('fortiGateImageSKU'),'fortinet_fg-vm'),equals(variables('fortiGateImageSKU'),'fortinet_fg-vm_arm64')),not(equals(parameters('customImageReference'),''))), json('null'), variables('virtualMachinePlan'))]", |
890 | 977 | "dependsOn": [ |
891 | 978 | "[variables('fgtNic1Id')]", |
892 | 979 | "[variables('fgtNic2Id')]" |
|
903 | 990 | "customData": "[variables('fgtCustomData')]" |
904 | 991 | }, |
905 | 992 | "storageProfile": { |
906 | | - "imageReference": "[if(and(equals(parameters('fortiGateLicenseType'),'fortinet_fg-vm_byol'),not(equals(parameters('customImageReference'),''))), variables('imageReferenceCustomImage'), variables('imageReferenceMarketplace'))]", |
| 993 | + "imageReference": "[if(and(or(equals(variables('fortiGateImageSKU'),'fortinet_fg-vm'),equals(variables('fortiGateImageSKU'),'fortinet_fg-vm_arm64')),not(equals(parameters('customImageReference'),''))), variables('imageReferenceCustomImage'), variables('imageReferenceMarketplace'))]", |
907 | 994 | "diskControllerType": "[variables('diskControllerType')]", |
908 | 995 | "osDisk": { |
909 | 996 | "createOption": "FromImage" |
|
943 | 1030 | "outputs": { |
944 | 1031 | "fortiGatePublicIP": { |
945 | 1032 | "type": "string", |
946 | | - "value": "[if(not(equals(parameters('publicIP1NewOrExisting'), 'none')), reference(variables('publicIP1Id'), '2025-05-01').ipAddress, '')]" |
| 1033 | + "value": "[if(not(equals(parameters('publicIP1NewOrExisting'), 'none')), reference(variables('publicIP1Id')).ipAddress, '')]" |
947 | 1034 | }, |
948 | 1035 | "fortiGateFQDN": { |
949 | 1036 | "type": "string", |
950 | | - "value": "[if(not(equals(parameters('publicIP1NewOrExisting'), 'none')), reference(variables('publicIP1Id'), '2025-05-01').dnsSettings.fqdn, '' )]" |
| 1037 | + "value": "[if(not(equals(parameters('publicIP1NewOrExisting'), 'none')), reference(variables('publicIP1Id')).dnsSettings.fqdn, '' )]" |
951 | 1038 | } |
952 | 1039 | } |
953 | 1040 | } |
0 commit comments