|
30 | 30 | }, |
31 | 31 | "validations": [ |
32 | 32 | { |
33 | | - "isValid": "[or(equals(basics('extendedZone'), 'None'), and(equals(basics('extendedZone'), 'losangeles'), equals(location(), 'westus')), and(equals(basics('extendedZone'), 'perth'), equals(location(), 'australiaeast')))]", |
| 33 | + "isValid": "[or(equals(coalesce(basics('extendedZone'), 'None'), 'None'), and(equals(basics('extendedZone'), 'losangeles'), equals(location(), 'westus')), and(equals(basics('extendedZone'), 'perth'), equals(location(), 'australiaeast')))]", |
34 | 34 | "message": "Extended Zone selection is not compatible with the selected region. Los Angeles Extended Zone requires West US region, Perth Extended Zone requires Australia East region." |
35 | 35 | }, |
36 | 36 | { |
37 | | - "isValid": "[or(equals(basics('extendedZone'), 'None'), not(equals(steps('chkp-advanced').publicIPPrefix, 'yes')))]", |
| 37 | + "isValid": "[or(equals(coalesce(basics('extendedZone'), 'None'), 'None'), not(equals(steps('chkp-advanced').publicIPPrefix, 'yes')))]", |
38 | 38 | "message": "Extended Zone cannot be combined with Public IP Prefix." |
39 | 39 | }, |
40 | 40 | { |
41 | | - "isValid": "[or(equals(basics('extendedZone'), 'None'), and(not(contains(createArray('R81.10'), steps('chkp').cloudGuardVersion)), equals(steps('chkp-advanced').VMDiskType, 'Premium_LRS')))]", |
| 41 | + "isValid": "[or(equals(coalesce(basics('extendedZone'), 'None'), 'None'), and(not(contains(createArray('R81.10'), steps('chkp').cloudGuardVersion)), equals(steps('chkp-advanced').VMDiskType, 'Premium_LRS')))]", |
42 | 42 | "message": "Extended Zone requires version R81.20 or above and VM disk type Premium_LRS (Premium SSD)." |
43 | 43 | } |
44 | 44 | ] |
|
63 | 63 | { "label": "Yes", "value": "Yes" } |
64 | 64 | ] |
65 | 65 | }, |
66 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), and(not(empty(basics('zoneInfo').value)), greater(int(if(greater(length(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))), 0), if(greater(length(first(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))).availabilityZoneMappings), 0), string(length(first(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))).availabilityZoneMappings)), '0'), '0')), 0)))]" |
| 66 | + "visible": "[and(not(empty(basics('zoneInfo').value)), greater(int(if(greater(length(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))), 0), if(greater(length(first(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))).availabilityZoneMappings), 0), string(length(first(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))).availabilityZoneMappings)), '0'), '0')), 0))]" |
67 | 67 | }, |
68 | 68 | { |
69 | 69 | "name": "zonesDropdown", |
|
78 | 78 | "allowedValues": "[map(range(1, int(string(length(first(filter(basics('zoneInfo').value, (r) => equals(r.name, location()))).availabilityZoneMappings)))), (item) => parse(concat('{\"label\":\"Zone ', string(item), '\",\"value\":\"', string(item), '\"}')))]", |
79 | 79 | "required": false |
80 | 80 | }, |
81 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(basics('availabilityZonesChoice'), 'Yes'))]" |
| 81 | + "visible": "[equals(basics('availabilityZonesChoice'), 'Yes')]" |
82 | 82 | }, |
83 | 83 | { |
84 | 84 | "name": "zonesTooMany", |
85 | 85 | "type": "Microsoft.Common.InfoBox", |
86 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), and(equals(basics('availabilityZonesChoice'), 'Yes'), greater(length(coalesce(basics('zonesDropdown'), parse('[]'))), 2)))]", |
| 86 | + "visible": "[and(equals(basics('availabilityZonesChoice'), 'Yes'), greater(length(coalesce(basics('zonesDropdown'), parse('[]'))), 2))]", |
87 | 87 | "options": { |
88 | 88 | "icon": "Error", |
89 | 89 | "text": "HA cluster deploys exactly 2 VMs. Please select at most 2 availability zones." |
|
1423 | 1423 | } |
1424 | 1424 | ] |
1425 | 1425 | }, |
1426 | | - "visible": "[equals(basics('extendedZone'), 'None')]" |
| 1426 | + "visible": "[equals(coalesce(basics('extendedZone'), 'None'), 'None')]" |
1427 | 1427 | }, |
1428 | 1428 | { |
1429 | 1429 | "name": "createNewIPPrefix", |
|
1443 | 1443 | } |
1444 | 1444 | ] |
1445 | 1445 | }, |
1446 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(steps('chkp-advanced').publicIPPrefix, 'yes'))]" |
| 1446 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('chkp-advanced').publicIPPrefix, 'yes'))]" |
1447 | 1447 | }, |
1448 | 1448 | { |
1449 | 1449 | "name": "ipPrefixExistingResourceId", |
|
1456 | 1456 | "regex": "^[a-z0-9A-Z -.:/n]{1,}$", |
1457 | 1457 | "validationMessage": "Only alphanumeric characters, hyphens, spaces, periods, and colons are allowed." |
1458 | 1458 | }, |
1459 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), and(equals(steps('chkp-advanced').publicIPPrefix, 'yes'), equals(steps('chkp-advanced').createNewIPPrefix, 'no')))]" |
| 1459 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), and(equals(steps('chkp-advanced').publicIPPrefix, 'yes'), equals(steps('chkp-advanced').createNewIPPrefix, 'no')))]" |
1460 | 1460 | } |
1461 | 1461 | ] |
1462 | 1462 | }, |
|
1792 | 1792 | ], |
1793 | 1793 | "required": true |
1794 | 1794 | }, |
1795 | | - "visible": "[equals(basics('extendedZone'), 'None')]" |
| 1795 | + "visible": "[equals(coalesce(basics('extendedZone'), 'None'), 'None')]" |
1796 | 1796 | }, |
1797 | 1797 | { |
1798 | 1798 | "name": "addStorageAccountIpRules", |
|
1813 | 1813 | ], |
1814 | 1814 | "required": "[equals(steps('network').storageAccountDeployMode, 'New')]" |
1815 | 1815 | }, |
1816 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(steps('network').storageAccountDeployMode, 'New'))]" |
| 1816 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('network').storageAccountDeployMode, 'New'))]" |
1817 | 1817 | }, |
1818 | 1818 | { |
1819 | 1819 | "name": "existingStorageAccount", |
|
1825 | 1825 | "constraints": { |
1826 | 1826 | "required": "[equals(steps('network').storageAccountDeployMode, 'Existing')]" |
1827 | 1827 | }, |
1828 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(steps('network').storageAccountDeployMode, 'Existing'))]" |
| 1828 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('network').storageAccountDeployMode, 'Existing'))]" |
1829 | 1829 | }, |
1830 | 1830 | { |
1831 | 1831 | "name": "infoExistingStorageAccount", |
1832 | 1832 | "type": "Microsoft.Common.InfoBox", |
1833 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(steps('network').storageAccountDeployMode, 'Existing'))]", |
| 1833 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('network').storageAccountDeployMode, 'Existing'))]", |
1834 | 1834 | "options": { |
1835 | 1835 | "icon": "Info", |
1836 | 1836 | "text": "The Storage Account must allow network access from the Serial Console feature, for more information - <a href='https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/linux/serial-console-linux?WT.mc_id=Portal-Microsoft_Azure_CreateUIDef' target='_blank'>Serial Console Security</a>." |
|
1839 | 1839 | { |
1840 | 1840 | "name": "infoManagedStorageAccount", |
1841 | 1841 | "type": "Microsoft.Common.InfoBox", |
1842 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(steps('network').storageAccountDeployMode, 'Managed'))]", |
| 1842 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('network').storageAccountDeployMode, 'Managed'))]", |
1843 | 1843 | "options": { |
1844 | 1844 | "icon": "Info", |
1845 | 1845 | "text": "Azure will use a managed Storage Account for the deployment, no additional configuration is required." |
|
1848 | 1848 | { |
1849 | 1849 | "name": "warningNoneStorageAccount", |
1850 | 1850 | "type": "Microsoft.Common.InfoBox", |
1851 | | - "visible": "[and(equals(basics('extendedZone'), 'None'), equals(steps('network').storageAccountDeployMode, 'None'))]", |
| 1851 | + "visible": "[and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('network').storageAccountDeployMode, 'None'))]", |
1852 | 1852 | "options": { |
1853 | 1853 | "icon": "Warning", |
1854 | 1854 | "text": "Please note that deploying without a Storage Account will not allow you to use the Serial Console feature. For more information - <a href='https://learn.microsoft.com/en-us/troubleshoot/azure/virtual-machines/linux/serial-console-linux?WT.mc_id=Portal-Microsoft_Azure_CreateUIDef' target='_blank'>Azure Serial Console</a>." |
|
1890 | 1890 | ], |
1891 | 1891 | "outputs": { |
1892 | 1892 | "location": "[location()]", |
1893 | | - "extendedZone": "[basics('extendedZone')]", |
| 1893 | + "extendedZone": "[coalesce(basics('extendedZone'), 'None')]", |
1894 | 1894 | "cloudGuardVersion": "[concat(steps('chkp').cloudGuardVersion, ' - ', coalesce(steps('chkp').R80Offer, 'Bring Your Own License'))]", |
1895 | 1895 | "adminPassword": "[basics('auth').password]", |
1896 | 1896 | "authenticationType": "[basics('auth').authenticationType]", |
|
1914 | 1914 | "diskType": "[if(contains('R81.10' , steps('chkp').cloudGuardVersion) , steps('chkp-advanced').VMDiskTypeOldVersions , steps('chkp-advanced').VMDiskType)]", |
1915 | 1915 | "managedSystemAssigned": "[steps('chkp-advanced').managedSystemAssigned]", |
1916 | 1916 | "sourceImageVhdUri": "[coalesce(steps('chkp-advanced').sourceImageVhdUri, 'noCustomUri')]", |
1917 | | - "availabilityZones": "[if(and(equals(basics('extendedZone'), 'None'), equals(basics('availabilityZonesChoice'), 'Yes')), if(greater(length(coalesce(basics('zonesDropdown'), parse('[]'))), 0), basics('zonesDropdown'), parse('[\"1\", \"2\"]')), parse('[]'))]", |
1918 | | - "availabilityZonesChoice": "[if(equals(basics('extendedZone'), 'None'), basics('availabilityZonesChoice'), 'No')]", |
| 1917 | + "availabilityZones": "[if(equals(basics('availabilityZonesChoice'), 'Yes'), if(greater(length(coalesce(basics('zonesDropdown'), parse('[]'))), 0), basics('zonesDropdown'), parse('[\"1\", \"2\"]')), parse('[]'))]", |
| 1918 | + "availabilityZonesChoice": "[basics('availabilityZonesChoice')]", |
1919 | 1919 | "customMetrics": "[steps('chkp-advanced').customMetrics]", |
1920 | 1920 | "floatingIP": "[steps('chkp-advanced').floatingIP]", |
1921 | | - "publicIPPrefix": "[if(equals(basics('extendedZone'), 'None'), steps('chkp-advanced').publicIPPrefix, 'no')]", |
1922 | | - "createNewIPPrefix": "[if(and(equals(basics('extendedZone'), 'None'), equals(steps('chkp-advanced').publicIPPrefix, 'yes')), steps('chkp-advanced').createNewIPPrefix, 'no')]", |
1923 | | - "ipPrefixExistingResourceId": "[if(and(equals(basics('extendedZone'), 'None'), equals(steps('chkp-advanced').publicIPPrefix, 'yes'), equals(steps('chkp-advanced').createNewIPPrefix, 'no')), steps('chkp-advanced').ipPrefixExistingResourceId, '')]", |
| 1921 | + "publicIPPrefix": "[if(equals(basics('availabilityZonesChoice'), 'Yes'), steps('chkp-advanced').publicIPPrefix, if(equals(coalesce(basics('extendedZone'), 'None'), 'None'), steps('chkp-advanced').publicIPPrefix, 'no'))]", |
| 1922 | + "createNewIPPrefix": "[if(equals(basics('availabilityZonesChoice'), 'Yes'), if(equals(steps('chkp-advanced').publicIPPrefix, 'yes'), steps('chkp-advanced').createNewIPPrefix, 'no'), if(and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('chkp-advanced').publicIPPrefix, 'yes')), steps('chkp-advanced').createNewIPPrefix, 'no'))]", |
| 1923 | + "ipPrefixExistingResourceId": "[if(equals(basics('availabilityZonesChoice'), 'Yes'), if(and(equals(steps('chkp-advanced').publicIPPrefix, 'yes'), equals(steps('chkp-advanced').createNewIPPrefix, 'no')), steps('chkp-advanced').ipPrefixExistingResourceId, ''), if(and(equals(coalesce(basics('extendedZone'), 'None'), 'None'), equals(steps('chkp-advanced').publicIPPrefix, 'yes'), equals(steps('chkp-advanced').createNewIPPrefix, 'no')), steps('chkp-advanced').ipPrefixExistingResourceId, ''))]", |
1924 | 1924 | "adminShell": "[steps('chkp-advanced').adminShell]", |
1925 | 1925 | "smart1CloudTokenA": "[steps('chkp').Smart1CloudTokenA]", |
1926 | 1926 | "smart1CloudTokenB": "[steps('chkp').Smart1CloudTokenB]", |
|
0 commit comments