Skip to content

Commit e0dbd02

Browse files
committed
feat(CGNSPC-1668): Azure | ARM | Single & HA - Extended zones support CreateUI
1 parent 4d149d8 commit e0dbd02

2 files changed

Lines changed: 50 additions & 51 deletions

File tree

azure/templates/marketplace-ha/createUiDefinition.json

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@
3030
},
3131
"validations": [
3232
{
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')))]",
3434
"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."
3535
},
3636
{
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')))]",
3838
"message": "Extended Zone cannot be combined with Public IP Prefix."
3939
},
4040
{
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')))]",
4242
"message": "Extended Zone requires version R81.20 or above and VM disk type Premium_LRS (Premium SSD)."
4343
}
4444
]
@@ -63,7 +63,7 @@
6363
{ "label": "Yes", "value": "Yes" }
6464
]
6565
},
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))]"
6767
},
6868
{
6969
"name": "zonesDropdown",
@@ -78,12 +78,12 @@
7878
"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), '\"}')))]",
7979
"required": false
8080
},
81-
"visible": "[and(equals(basics('extendedZone'), 'None'), equals(basics('availabilityZonesChoice'), 'Yes'))]"
81+
"visible": "[equals(basics('availabilityZonesChoice'), 'Yes')]"
8282
},
8383
{
8484
"name": "zonesTooMany",
8585
"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))]",
8787
"options": {
8888
"icon": "Error",
8989
"text": "HA cluster deploys exactly 2 VMs. Please select at most 2 availability zones."
@@ -1423,7 +1423,7 @@
14231423
}
14241424
]
14251425
},
1426-
"visible": "[equals(basics('extendedZone'), 'None')]"
1426+
"visible": "[equals(coalesce(basics('extendedZone'), 'None'), 'None')]"
14271427
},
14281428
{
14291429
"name": "createNewIPPrefix",
@@ -1443,7 +1443,7 @@
14431443
}
14441444
]
14451445
},
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'))]"
14471447
},
14481448
{
14491449
"name": "ipPrefixExistingResourceId",
@@ -1456,7 +1456,7 @@
14561456
"regex": "^[a-z0-9A-Z -.:/n]{1,}$",
14571457
"validationMessage": "Only alphanumeric characters, hyphens, spaces, periods, and colons are allowed."
14581458
},
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')))]"
14601460
}
14611461
]
14621462
},
@@ -1792,7 +1792,7 @@
17921792
],
17931793
"required": true
17941794
},
1795-
"visible": "[equals(basics('extendedZone'), 'None')]"
1795+
"visible": "[equals(coalesce(basics('extendedZone'), 'None'), 'None')]"
17961796
},
17971797
{
17981798
"name": "addStorageAccountIpRules",
@@ -1813,7 +1813,7 @@
18131813
],
18141814
"required": "[equals(steps('network').storageAccountDeployMode, 'New')]"
18151815
},
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'))]"
18171817
},
18181818
{
18191819
"name": "existingStorageAccount",
@@ -1825,12 +1825,12 @@
18251825
"constraints": {
18261826
"required": "[equals(steps('network').storageAccountDeployMode, 'Existing')]"
18271827
},
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'))]"
18291829
},
18301830
{
18311831
"name": "infoExistingStorageAccount",
18321832
"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'))]",
18341834
"options": {
18351835
"icon": "Info",
18361836
"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,7 +1839,7 @@
18391839
{
18401840
"name": "infoManagedStorageAccount",
18411841
"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'))]",
18431843
"options": {
18441844
"icon": "Info",
18451845
"text": "Azure will use a managed Storage Account for the deployment, no additional configuration is required."
@@ -1848,7 +1848,7 @@
18481848
{
18491849
"name": "warningNoneStorageAccount",
18501850
"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'))]",
18521852
"options": {
18531853
"icon": "Warning",
18541854
"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,7 +1890,7 @@
18901890
],
18911891
"outputs": {
18921892
"location": "[location()]",
1893-
"extendedZone": "[basics('extendedZone')]",
1893+
"extendedZone": "[coalesce(basics('extendedZone'), 'None')]",
18941894
"cloudGuardVersion": "[concat(steps('chkp').cloudGuardVersion, ' - ', coalesce(steps('chkp').R80Offer, 'Bring Your Own License'))]",
18951895
"adminPassword": "[basics('auth').password]",
18961896
"authenticationType": "[basics('auth').authenticationType]",
@@ -1914,13 +1914,13 @@
19141914
"diskType": "[if(contains('R81.10' , steps('chkp').cloudGuardVersion) , steps('chkp-advanced').VMDiskTypeOldVersions , steps('chkp-advanced').VMDiskType)]",
19151915
"managedSystemAssigned": "[steps('chkp-advanced').managedSystemAssigned]",
19161916
"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')]",
19191919
"customMetrics": "[steps('chkp-advanced').customMetrics]",
19201920
"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, ''))]",
19241924
"adminShell": "[steps('chkp-advanced').adminShell]",
19251925
"smart1CloudTokenA": "[steps('chkp').Smart1CloudTokenA]",
19261926
"smart1CloudTokenB": "[steps('chkp').Smart1CloudTokenB]",

0 commit comments

Comments
 (0)