openvidu-deployment: Refactor Azure VM size parameters for OpenVidu deployment ARM support.

master
cruizba 2025-12-02 19:21:16 +01:00
parent 0cfc342153
commit 75fc732c69
12 changed files with 104 additions and 1836 deletions

View File

@ -45,141 +45,8 @@ param initialMeetApiKey string = ''
// Azure instance config
@description('Specifies the azure vm size for your OpenVidu instance')
@allowed([
'Standard_B1s'
'Standard_B1ms'
'Standard_B2s'
'Standard_B2ms'
'Standard_B4ms'
'Standard_B8ms'
'Standard_D2_v3'
'Standard_D4_v3'
'Standard_D8_v3'
'Standard_D16_v3'
'Standard_D32_v3'
'Standard_D48_v3'
'Standard_D64_v3'
'Standard_D2_v4'
'Standard_D4_v4'
'Standard_D8_v4'
'Standard_D16_v4'
'Standard_D32_v4'
'Standard_D48_v4'
'Standard_D64_v4'
'Standard_D96_v4'
'Standard_D2_v5'
'Standard_D4_v5'
'Standard_D8_v5'
'Standard_D16_v5'
'Standard_D32_v5'
'Standard_D48_v5'
'Standard_D64_v5'
'Standard_D96_v5'
'Standard_D2ps_v5'
'Standard_D4ps_v5'
'Standard_D8ps_v5'
'Standard_D16ps_v5'
'Standard_D32ps_v5'
'Standard_D48ps_v5'
'Standard_D64ps_v5'
'Standard_D2pls_v5'
'Standard_D4pls_v5'
'Standard_D8pls_v5'
'Standard_D16pls_v5'
'Standard_D32pls_v5'
'Standard_D48pls_v5'
'Standard_D64pls_v5'
'Standard_D96ps_v5'
'Standard_F2'
'Standard_F4'
'Standard_F8'
'Standard_F16'
'Standard_F32'
'Standard_F64'
'Standard_F72'
'Standard_F2s_v2'
'Standard_F4s_v2'
'Standard_F8s_v2'
'Standard_F16s_v2'
'Standard_F32s_v2'
'Standard_F64s_v2'
'Standard_F72s_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E32_v3'
'Standard_E48_v3'
'Standard_E64_v3'
'Standard_E96_v3'
'Standard_E2_v4'
'Standard_E4_v4'
'Standard_E8_v4'
'Standard_E16_v4'
'Standard_E32_v4'
'Standard_E48_v4'
'Standard_E64_v4'
'Standard_E2_v5'
'Standard_E4_v5'
'Standard_E8_v5'
'Standard_E16_v5'
'Standard_E32_v5'
'Standard_E48_v5'
'Standard_E64_v5'
'Standard_E96_v5'
'Standard_E2ps_v5'
'Standard_E4ps_v5'
'Standard_E8ps_v5'
'Standard_E16ps_v5'
'Standard_E20ps_v5'
'Standard_E32ps_v5'
'Standard_E48ps_v5'
'Standard_E64ps_v5'
'Standard_E96ps_v5'
'Standard_M64'
'Standard_M128'
'Standard_M208ms_v2'
'Standard_M416ms_v2'
'Standard_L4s_v2'
'Standard_L8s_v2'
'Standard_L16s_v2'
'Standard_L32s_v2'
'Standard_L64s_v2'
'Standard_L80s_v2'
'Standard_NC6'
'Standard_NC12'
'Standard_NC24'
'Standard_NC24r'
'Standard_ND6s'
'Standard_ND12s'
'Standard_ND24s'
'Standard_ND24rs'
'Standard_NV6'
'Standard_NV12'
'Standard_NV24'
'Standard_H8'
'Standard_H16'
'Standard_H16r'
'Standard_H16mr'
'Standard_HB120rs_v2'
'Standard_HC44rs'
'Standard_DC2s'
'Standard_DC4s'
'Standard_DC2s_v2'
'Standard_DC4s_v2'
'Standard_DC8s_v2'
'Standard_DC16s_v2'
'Standard_DC32s_v2'
'Standard_A1_v2'
'Standard_A2_v2'
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_A2m_v2'
'Standard_A4m_v2'
'Standard_A8m_v2'
])
param instanceType string = 'Standard_B2s' // Azure instance types.
@description('Specifies the azure vm size for your OpenVidu instance. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes.')
param instanceType string = 'Standard_B4s'
@description('Username for the Virtual Machine.')
param adminUsername string
@ -198,34 +65,14 @@ var isEmptyIp = publicIpAddressObject.newOrExistingOrNone == 'none'
//Condition for the domain name
var isEmptyDomain = domainName == ''
var arm64InstanceTypes = [
'standard_d2ps_v5'
'standard_d4ps_v5'
'standard_d8ps_v5'
'standard_d16ps_v5'
'standard_d32ps_v5'
'standard_d48ps_v5'
'standard_d64ps_v5'
'standard_d2pls_v5'
'standard_d4pls_v5'
'standard_d8pls_v5'
'standard_d16pls_v5'
'standard_d32pls_v5'
'standard_d48pls_v5'
'standard_d64pls_v5'
'standard_d96ps_v5'
'standard_e2ps_v5'
'standard_e4ps_v5'
'standard_e8ps_v5'
'standard_e16ps_v5'
'standard_e20ps_v5'
'standard_e32ps_v5'
'standard_e48ps_v5'
'standard_e64ps_v5'
'standard_e96ps_v5'
]
// ARM64 instances are detected by checking for 'p' in the instance type name pattern.
// Azure ARM-based VMs use 'p' to indicate ARM processors (Ampere Altra, Microsoft Cobalt, etc.)
// Examples: Standard_D2ps_v5, Standard_E4pds_v5, Standard_B2pls_v2, etc.
// The pattern checks for 'p' followed by optional letters (like 'l', 'd', 's') before '_v' version suffix
var instanceTypeLower = toLower(instanceType)
var isArm64Instance = contains(instanceTypeLower, 'ps_v') || contains(instanceTypeLower, 'pls_v') || contains(instanceTypeLower, 'pds_v') || contains(instanceTypeLower, 'plds_v') || contains(instanceTypeLower, 'psv') || contains(instanceTypeLower, 'plsv') || contains(instanceTypeLower, 'pdsv') || contains(instanceTypeLower, 'pldsv')
var ubuntuSku = contains(arm64InstanceTypes, toLower(instanceType)) ? '24_04-lts-arm64' : '24_04-lts-gen2'
var ubuntuSku = isArm64Instance ? '24_04-lts-arm64' : '24_04-lts-gen2'
//Variables for deployment
var networkSettings = {

View File

@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.37.4.10188",
"templateHash": "2317567583079726758"
"templateHash": "15500404754597159784"
}
},
"parameters": {
@ -91,142 +91,9 @@
},
"instanceType": {
"type": "string",
"defaultValue": "Standard_B2s",
"allowedValues": [
"Standard_B1s",
"Standard_B1ms",
"Standard_B2s",
"Standard_B2ms",
"Standard_B4ms",
"Standard_B8ms",
"Standard_D2_v3",
"Standard_D4_v3",
"Standard_D8_v3",
"Standard_D16_v3",
"Standard_D32_v3",
"Standard_D48_v3",
"Standard_D64_v3",
"Standard_D2_v4",
"Standard_D4_v4",
"Standard_D8_v4",
"Standard_D16_v4",
"Standard_D32_v4",
"Standard_D48_v4",
"Standard_D64_v4",
"Standard_D96_v4",
"Standard_D2_v5",
"Standard_D4_v5",
"Standard_D8_v5",
"Standard_D16_v5",
"Standard_D32_v5",
"Standard_D48_v5",
"Standard_D64_v5",
"Standard_D96_v5",
"Standard_D2ps_v5",
"Standard_D4ps_v5",
"Standard_D8ps_v5",
"Standard_D16ps_v5",
"Standard_D32ps_v5",
"Standard_D48ps_v5",
"Standard_D64ps_v5",
"Standard_D2pls_v5",
"Standard_D4pls_v5",
"Standard_D8pls_v5",
"Standard_D16pls_v5",
"Standard_D32pls_v5",
"Standard_D48pls_v5",
"Standard_D64pls_v5",
"Standard_D96ps_v5",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_F32",
"Standard_F64",
"Standard_F72",
"Standard_F2s_v2",
"Standard_F4s_v2",
"Standard_F8s_v2",
"Standard_F16s_v2",
"Standard_F32s_v2",
"Standard_F64s_v2",
"Standard_F72s_v2",
"Standard_E2_v3",
"Standard_E4_v3",
"Standard_E8_v3",
"Standard_E16_v3",
"Standard_E32_v3",
"Standard_E48_v3",
"Standard_E64_v3",
"Standard_E96_v3",
"Standard_E2_v4",
"Standard_E4_v4",
"Standard_E8_v4",
"Standard_E16_v4",
"Standard_E32_v4",
"Standard_E48_v4",
"Standard_E64_v4",
"Standard_E2_v5",
"Standard_E4_v5",
"Standard_E8_v5",
"Standard_E16_v5",
"Standard_E32_v5",
"Standard_E48_v5",
"Standard_E64_v5",
"Standard_E96_v5",
"Standard_E2ps_v5",
"Standard_E4ps_v5",
"Standard_E8ps_v5",
"Standard_E16ps_v5",
"Standard_E20ps_v5",
"Standard_E32ps_v5",
"Standard_E48ps_v5",
"Standard_E64ps_v5",
"Standard_E96ps_v5",
"Standard_M64",
"Standard_M128",
"Standard_M208ms_v2",
"Standard_M416ms_v2",
"Standard_L4s_v2",
"Standard_L8s_v2",
"Standard_L16s_v2",
"Standard_L32s_v2",
"Standard_L64s_v2",
"Standard_L80s_v2",
"Standard_NC6",
"Standard_NC12",
"Standard_NC24",
"Standard_NC24r",
"Standard_ND6s",
"Standard_ND12s",
"Standard_ND24s",
"Standard_ND24rs",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_H8",
"Standard_H16",
"Standard_H16r",
"Standard_H16mr",
"Standard_HB120rs_v2",
"Standard_HC44rs",
"Standard_DC2s",
"Standard_DC4s",
"Standard_DC2s_v2",
"Standard_DC4s_v2",
"Standard_DC8s_v2",
"Standard_DC16s_v2",
"Standard_DC32s_v2",
"Standard_A1_v2",
"Standard_A2_v2",
"Standard_A4_v2",
"Standard_A8_v2",
"Standard_A2m_v2",
"Standard_A4m_v2",
"Standard_A8m_v2"
],
"defaultValue": "Standard_B4s",
"metadata": {
"description": "Specifies the azure vm size for your OpenVidu instance"
"description": "Specifies the azure vm size for your OpenVidu instance. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes."
}
},
"adminUsername": {
@ -263,33 +130,9 @@
"variables": {
"isEmptyIp": "[equals(parameters('publicIpAddressObject').newOrExistingOrNone, 'none')]",
"isEmptyDomain": "[equals(parameters('domainName'), '')]",
"arm64InstanceTypes": [
"standard_d2ps_v5",
"standard_d4ps_v5",
"standard_d8ps_v5",
"standard_d16ps_v5",
"standard_d32ps_v5",
"standard_d48ps_v5",
"standard_d64ps_v5",
"standard_d2pls_v5",
"standard_d4pls_v5",
"standard_d8pls_v5",
"standard_d16pls_v5",
"standard_d32pls_v5",
"standard_d48pls_v5",
"standard_d64pls_v5",
"standard_d96ps_v5",
"standard_e2ps_v5",
"standard_e4ps_v5",
"standard_e8ps_v5",
"standard_e16ps_v5",
"standard_e20ps_v5",
"standard_e32ps_v5",
"standard_e48ps_v5",
"standard_e64ps_v5",
"standard_e96ps_v5"
],
"ubuntuSku": "[if(contains(variables('arm64InstanceTypes'), toLower(parameters('instanceType'))), '24_04-lts-arm64', '24_04-lts-gen2')]",
"instanceTypeLower": "[toLower(parameters('instanceType'))]",
"isArm64Instance": "[or(or(or(or(or(or(or(contains(variables('instanceTypeLower'), 'ps_v'), contains(variables('instanceTypeLower'), 'pls_v')), contains(variables('instanceTypeLower'), 'pds_v')), contains(variables('instanceTypeLower'), 'plds_v')), contains(variables('instanceTypeLower'), 'psv')), contains(variables('instanceTypeLower'), 'plsv')), contains(variables('instanceTypeLower'), 'pdsv')), contains(variables('instanceTypeLower'), 'pldsv'))]",
"ubuntuSku": "[if(variables('isArm64Instance'), '24_04-lts-arm64', '24_04-lts-gen2')]",
"networkSettings": {
"privateIPaddressNetInterface": "10.0.0.5",
"vNetAddressPrefix": "10.0.0.0/16",

View File

@ -209,8 +209,10 @@
"label": "Type of Instance",
"toolTip": "Specifies the azure vm size for your OpenVidu instance",
"recommendedSizes": [
"Standard_B2s",
"Standard_B4ms"
"Standard_B4s",
"Standard_B4ms",
"Standard_D4ps_v5",
"Standard_D4pls_v5"
],
"constraints": {
"allowedSizes": [],

View File

@ -53,277 +53,11 @@ param initialMeetAdminPassword string = ''
@secure()
param initialMeetApiKey string = ''
@description('Specifies the EC2 instance type for your OpenVidu Master Node')
@allowed([
'Standard_B1s'
'Standard_B1ms'
'Standard_B2s'
'Standard_B2ms'
'Standard_B4ms'
'Standard_B8ms'
'Standard_D2_v3'
'Standard_D4_v3'
'Standard_D8_v3'
'Standard_D16_v3'
'Standard_D32_v3'
'Standard_D48_v3'
'Standard_D64_v3'
'Standard_D2_v4'
'Standard_D4_v4'
'Standard_D8_v4'
'Standard_D16_v4'
'Standard_D32_v4'
'Standard_D48_v4'
'Standard_D64_v4'
'Standard_D96_v4'
'Standard_D2_v5'
'Standard_D4_v5'
'Standard_D8_v5'
'Standard_D16_v5'
'Standard_D32_v5'
'Standard_D48_v5'
'Standard_D64_v5'
'Standard_D96_v5'
'Standard_D2ps_v5'
'Standard_D4ps_v5'
'Standard_D8ps_v5'
'Standard_D16ps_v5'
'Standard_D32ps_v5'
'Standard_D48ps_v5'
'Standard_D64ps_v5'
'Standard_D96ps_v5'
'Standard_D2pls_v5'
'Standard_D4pls_v5'
'Standard_D8pls_v5'
'Standard_D16pls_v5'
'Standard_D32pls_v5'
'Standard_D48pls_v5'
'Standard_D64pls_v5'
'Standard_F2'
'Standard_F4'
'Standard_F8'
'Standard_F16'
'Standard_F32'
'Standard_F64'
'Standard_F72'
'Standard_F2s_v2'
'Standard_F4s_v2'
'Standard_F8s_v2'
'Standard_F16s_v2'
'Standard_F32s_v2'
'Standard_F64s_v2'
'Standard_F72s_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E32_v3'
'Standard_E48_v3'
'Standard_E64_v3'
'Standard_E96_v3'
'Standard_E2_v4'
'Standard_E4_v4'
'Standard_E8_v4'
'Standard_E16_v4'
'Standard_E32_v4'
'Standard_E48_v4'
'Standard_E64_v4'
'Standard_E2_v5'
'Standard_E4_v5'
'Standard_E8_v5'
'Standard_E16_v5'
'Standard_E32_v5'
'Standard_E48_v5'
'Standard_E64_v5'
'Standard_E96_v5'
'Standard_E2ps_v5'
'Standard_E4ps_v5'
'Standard_E8ps_v5'
'Standard_E16ps_v5'
'Standard_E20ps_v5'
'Standard_E32ps_v5'
'Standard_E48ps_v5'
'Standard_E64ps_v5'
'Standard_E96ps_v5'
'Standard_M64'
'Standard_M128'
'Standard_M208ms_v2'
'Standard_M416ms_v2'
'Standard_L4s_v2'
'Standard_L8s_v2'
'Standard_L16s_v2'
'Standard_L32s_v2'
'Standard_L64s_v2'
'Standard_L80s_v2'
'Standard_NC6'
'Standard_NC12'
'Standard_NC24'
'Standard_NC24r'
'Standard_ND6s'
'Standard_ND12s'
'Standard_ND24s'
'Standard_ND24rs'
'Standard_NV6'
'Standard_NV12'
'Standard_NV24'
'Standard_H8'
'Standard_H16'
'Standard_H16r'
'Standard_H16mr'
'Standard_HB120rs_v2'
'Standard_HC44rs'
'Standard_DC2s'
'Standard_DC4s'
'Standard_DC2s_v2'
'Standard_DC4s_v2'
'Standard_DC8s_v2'
'Standard_DC16s_v2'
'Standard_DC32s_v2'
'Standard_A1_v2'
'Standard_A2_v2'
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_A2m_v2'
'Standard_A4m_v2'
'Standard_A8m_v2'
])
param masterNodeInstanceType string = 'Standard_B2s'
@description('Specifies the VM size for your OpenVidu Master Node. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes.')
param masterNodeInstanceType string = 'Standard_B4s'
@description('Specifies the EC2 instance type for your OpenVidu Media Nodes')
@allowed([
'Standard_B1s'
'Standard_B1ms'
'Standard_B2s'
'Standard_B2ms'
'Standard_B4ms'
'Standard_B8ms'
'Standard_D2_v3'
'Standard_D4_v3'
'Standard_D8_v3'
'Standard_D16_v3'
'Standard_D32_v3'
'Standard_D48_v3'
'Standard_D64_v3'
'Standard_D2_v4'
'Standard_D4_v4'
'Standard_D8_v4'
'Standard_D16_v4'
'Standard_D32_v4'
'Standard_D48_v4'
'Standard_D64_v4'
'Standard_D96_v4'
'Standard_D2_v5'
'Standard_D4_v5'
'Standard_D8_v5'
'Standard_D16_v5'
'Standard_D32_v5'
'Standard_D48_v5'
'Standard_D64_v5'
'Standard_D96_v5'
'Standard_D2ps_v5'
'Standard_D4ps_v5'
'Standard_D8ps_v5'
'Standard_D16ps_v5'
'Standard_D32ps_v5'
'Standard_D48ps_v5'
'Standard_D64ps_v5'
'Standard_D96ps_v5'
'Standard_D2pls_v5'
'Standard_D4pls_v5'
'Standard_D8pls_v5'
'Standard_D16pls_v5'
'Standard_D32pls_v5'
'Standard_D48pls_v5'
'Standard_D64pls_v5'
'Standard_F2'
'Standard_F4'
'Standard_F8'
'Standard_F16'
'Standard_F32'
'Standard_F64'
'Standard_F72'
'Standard_F2s_v2'
'Standard_F4s_v2'
'Standard_F8s_v2'
'Standard_F16s_v2'
'Standard_F32s_v2'
'Standard_F64s_v2'
'Standard_F72s_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E32_v3'
'Standard_E48_v3'
'Standard_E64_v3'
'Standard_E96_v3'
'Standard_E2_v4'
'Standard_E4_v4'
'Standard_E8_v4'
'Standard_E16_v4'
'Standard_E32_v4'
'Standard_E48_v4'
'Standard_E64_v4'
'Standard_E2_v5'
'Standard_E4_v5'
'Standard_E8_v5'
'Standard_E16_v5'
'Standard_E32_v5'
'Standard_E48_v5'
'Standard_E64_v5'
'Standard_E96_v5'
'Standard_E2ps_v5'
'Standard_E4ps_v5'
'Standard_E8ps_v5'
'Standard_E16ps_v5'
'Standard_E20ps_v5'
'Standard_E32ps_v5'
'Standard_E48ps_v5'
'Standard_E64ps_v5'
'Standard_E96ps_v5'
'Standard_M64'
'Standard_M128'
'Standard_M208ms_v2'
'Standard_M416ms_v2'
'Standard_L4s_v2'
'Standard_L8s_v2'
'Standard_L16s_v2'
'Standard_L32s_v2'
'Standard_L64s_v2'
'Standard_L80s_v2'
'Standard_NC6'
'Standard_NC12'
'Standard_NC24'
'Standard_NC24r'
'Standard_ND6s'
'Standard_ND12s'
'Standard_ND24s'
'Standard_ND24rs'
'Standard_NV6'
'Standard_NV12'
'Standard_NV24'
'Standard_H8'
'Standard_H16'
'Standard_H16r'
'Standard_H16mr'
'Standard_HB120rs_v2'
'Standard_HC44rs'
'Standard_DC2s'
'Standard_DC4s'
'Standard_DC2s_v2'
'Standard_DC4s_v2'
'Standard_DC8s_v2'
'Standard_DC16s_v2'
'Standard_DC32s_v2'
'Standard_A1_v2'
'Standard_A2_v2'
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_A2m_v2'
'Standard_A4m_v2'
'Standard_A8m_v2'
])
param mediaNodeInstanceType string = 'Standard_B2s'
@description('Specifies the VM size for your OpenVidu Media Nodes. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes.')
param mediaNodeInstanceType string = 'Standard_B4s'
@description('Username for the Virtual Machine.')
param adminUsername string
@ -352,35 +86,17 @@ var isEmptyIp = publicIpAddressObject.newOrExistingOrNone == 'none'
var isEmptyDomain = domainName == ''
var arm64InstanceTypes = [
'standard_d2ps_v5'
'standard_d4ps_v5'
'standard_d8ps_v5'
'standard_d16ps_v5'
'standard_d32ps_v5'
'standard_d48ps_v5'
'standard_d64ps_v5'
'standard_d96ps_v5'
'standard_d2pls_v5'
'standard_d4pls_v5'
'standard_d8pls_v5'
'standard_d16pls_v5'
'standard_d32pls_v5'
'standard_d48pls_v5'
'standard_d64pls_v5'
'standard_e2ps_v5'
'standard_e4ps_v5'
'standard_e8ps_v5'
'standard_e16ps_v5'
'standard_e20ps_v5'
'standard_e32ps_v5'
'standard_e48ps_v5'
'standard_e64ps_v5'
'standard_e96ps_v5'
]
// ARM64 instances are detected by checking for 'p' in the instance type name pattern.
// Azure ARM-based VMs use 'p' to indicate ARM processors (Ampere Altra, Microsoft Cobalt, etc.)
// Examples: Standard_D2ps_v5, Standard_E4pds_v5, Standard_B2pls_v2, etc.
// The pattern checks for 'p' followed by optional letters (like 'l', 'd', 's') before '_v' version suffix
var masterNodeInstanceTypeLower = toLower(masterNodeInstanceType)
var mediaNodeInstanceTypeLower = toLower(mediaNodeInstanceType)
var isMasterArm64 = contains(masterNodeInstanceTypeLower, 'ps_v') || contains(masterNodeInstanceTypeLower, 'pls_v') || contains(masterNodeInstanceTypeLower, 'pds_v') || contains(masterNodeInstanceTypeLower, 'plds_v') || contains(masterNodeInstanceTypeLower, 'psv') || contains(masterNodeInstanceTypeLower, 'plsv') || contains(masterNodeInstanceTypeLower, 'pdsv') || contains(masterNodeInstanceTypeLower, 'pldsv')
var isMediaArm64 = contains(mediaNodeInstanceTypeLower, 'ps_v') || contains(mediaNodeInstanceTypeLower, 'pls_v') || contains(mediaNodeInstanceTypeLower, 'pds_v') || contains(mediaNodeInstanceTypeLower, 'plds_v') || contains(mediaNodeInstanceTypeLower, 'psv') || contains(mediaNodeInstanceTypeLower, 'plsv') || contains(mediaNodeInstanceTypeLower, 'pdsv') || contains(mediaNodeInstanceTypeLower, 'pldsv')
var masterUbuntuSku = contains(arm64InstanceTypes, toLower(masterNodeInstanceType)) ? '24_04-lts-arm64' : '24_04-lts-gen2'
var mediaUbuntuSku = contains(arm64InstanceTypes, toLower(mediaNodeInstanceType)) ? '24_04-lts-arm64' : '24_04-lts-gen2'
var masterUbuntuSku = isMasterArm64 ? '24_04-lts-arm64' : '24_04-lts-gen2'
var mediaUbuntuSku = isMediaArm64 ? '24_04-lts-arm64' : '24_04-lts-gen2'
var masterNodeVMSettings = {
vmName: '${stackName}-VM-MasterNode'

View File

@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.37.4.10188",
"templateHash": "15487529759540634412"
"templateHash": "11064671770283732977"
}
},
"parameters": {
@ -108,282 +108,16 @@
},
"masterNodeInstanceType": {
"type": "string",
"defaultValue": "Standard_B2s",
"allowedValues": [
"Standard_B1s",
"Standard_B1ms",
"Standard_B2s",
"Standard_B2ms",
"Standard_B4ms",
"Standard_B8ms",
"Standard_D2_v3",
"Standard_D4_v3",
"Standard_D8_v3",
"Standard_D16_v3",
"Standard_D32_v3",
"Standard_D48_v3",
"Standard_D64_v3",
"Standard_D2_v4",
"Standard_D4_v4",
"Standard_D8_v4",
"Standard_D16_v4",
"Standard_D32_v4",
"Standard_D48_v4",
"Standard_D64_v4",
"Standard_D96_v4",
"Standard_D2_v5",
"Standard_D4_v5",
"Standard_D8_v5",
"Standard_D16_v5",
"Standard_D32_v5",
"Standard_D48_v5",
"Standard_D64_v5",
"Standard_D96_v5",
"Standard_D2ps_v5",
"Standard_D4ps_v5",
"Standard_D8ps_v5",
"Standard_D16ps_v5",
"Standard_D32ps_v5",
"Standard_D48ps_v5",
"Standard_D64ps_v5",
"Standard_D96ps_v5",
"Standard_D2pls_v5",
"Standard_D4pls_v5",
"Standard_D8pls_v5",
"Standard_D16pls_v5",
"Standard_D32pls_v5",
"Standard_D48pls_v5",
"Standard_D64pls_v5",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_F32",
"Standard_F64",
"Standard_F72",
"Standard_F2s_v2",
"Standard_F4s_v2",
"Standard_F8s_v2",
"Standard_F16s_v2",
"Standard_F32s_v2",
"Standard_F64s_v2",
"Standard_F72s_v2",
"Standard_E2_v3",
"Standard_E4_v3",
"Standard_E8_v3",
"Standard_E16_v3",
"Standard_E32_v3",
"Standard_E48_v3",
"Standard_E64_v3",
"Standard_E96_v3",
"Standard_E2_v4",
"Standard_E4_v4",
"Standard_E8_v4",
"Standard_E16_v4",
"Standard_E32_v4",
"Standard_E48_v4",
"Standard_E64_v4",
"Standard_E2_v5",
"Standard_E4_v5",
"Standard_E8_v5",
"Standard_E16_v5",
"Standard_E32_v5",
"Standard_E48_v5",
"Standard_E64_v5",
"Standard_E96_v5",
"Standard_E2ps_v5",
"Standard_E4ps_v5",
"Standard_E8ps_v5",
"Standard_E16ps_v5",
"Standard_E20ps_v5",
"Standard_E32ps_v5",
"Standard_E48ps_v5",
"Standard_E64ps_v5",
"Standard_E96ps_v5",
"Standard_M64",
"Standard_M128",
"Standard_M208ms_v2",
"Standard_M416ms_v2",
"Standard_L4s_v2",
"Standard_L8s_v2",
"Standard_L16s_v2",
"Standard_L32s_v2",
"Standard_L64s_v2",
"Standard_L80s_v2",
"Standard_NC6",
"Standard_NC12",
"Standard_NC24",
"Standard_NC24r",
"Standard_ND6s",
"Standard_ND12s",
"Standard_ND24s",
"Standard_ND24rs",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_H8",
"Standard_H16",
"Standard_H16r",
"Standard_H16mr",
"Standard_HB120rs_v2",
"Standard_HC44rs",
"Standard_DC2s",
"Standard_DC4s",
"Standard_DC2s_v2",
"Standard_DC4s_v2",
"Standard_DC8s_v2",
"Standard_DC16s_v2",
"Standard_DC32s_v2",
"Standard_A1_v2",
"Standard_A2_v2",
"Standard_A4_v2",
"Standard_A8_v2",
"Standard_A2m_v2",
"Standard_A4m_v2",
"Standard_A8m_v2"
],
"defaultValue": "Standard_B4s",
"metadata": {
"description": "Specifies the EC2 instance type for your OpenVidu Master Node"
"description": "Specifies the VM size for your OpenVidu Master Node. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes."
}
},
"mediaNodeInstanceType": {
"type": "string",
"defaultValue": "Standard_B2s",
"allowedValues": [
"Standard_B1s",
"Standard_B1ms",
"Standard_B2s",
"Standard_B2ms",
"Standard_B4ms",
"Standard_B8ms",
"Standard_D2_v3",
"Standard_D4_v3",
"Standard_D8_v3",
"Standard_D16_v3",
"Standard_D32_v3",
"Standard_D48_v3",
"Standard_D64_v3",
"Standard_D2_v4",
"Standard_D4_v4",
"Standard_D8_v4",
"Standard_D16_v4",
"Standard_D32_v4",
"Standard_D48_v4",
"Standard_D64_v4",
"Standard_D96_v4",
"Standard_D2_v5",
"Standard_D4_v5",
"Standard_D8_v5",
"Standard_D16_v5",
"Standard_D32_v5",
"Standard_D48_v5",
"Standard_D64_v5",
"Standard_D96_v5",
"Standard_D2ps_v5",
"Standard_D4ps_v5",
"Standard_D8ps_v5",
"Standard_D16ps_v5",
"Standard_D32ps_v5",
"Standard_D48ps_v5",
"Standard_D64ps_v5",
"Standard_D96ps_v5",
"Standard_D2pls_v5",
"Standard_D4pls_v5",
"Standard_D8pls_v5",
"Standard_D16pls_v5",
"Standard_D32pls_v5",
"Standard_D48pls_v5",
"Standard_D64pls_v5",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_F32",
"Standard_F64",
"Standard_F72",
"Standard_F2s_v2",
"Standard_F4s_v2",
"Standard_F8s_v2",
"Standard_F16s_v2",
"Standard_F32s_v2",
"Standard_F64s_v2",
"Standard_F72s_v2",
"Standard_E2_v3",
"Standard_E4_v3",
"Standard_E8_v3",
"Standard_E16_v3",
"Standard_E32_v3",
"Standard_E48_v3",
"Standard_E64_v3",
"Standard_E96_v3",
"Standard_E2_v4",
"Standard_E4_v4",
"Standard_E8_v4",
"Standard_E16_v4",
"Standard_E32_v4",
"Standard_E48_v4",
"Standard_E64_v4",
"Standard_E2_v5",
"Standard_E4_v5",
"Standard_E8_v5",
"Standard_E16_v5",
"Standard_E32_v5",
"Standard_E48_v5",
"Standard_E64_v5",
"Standard_E96_v5",
"Standard_E2ps_v5",
"Standard_E4ps_v5",
"Standard_E8ps_v5",
"Standard_E16ps_v5",
"Standard_E20ps_v5",
"Standard_E32ps_v5",
"Standard_E48ps_v5",
"Standard_E64ps_v5",
"Standard_E96ps_v5",
"Standard_M64",
"Standard_M128",
"Standard_M208ms_v2",
"Standard_M416ms_v2",
"Standard_L4s_v2",
"Standard_L8s_v2",
"Standard_L16s_v2",
"Standard_L32s_v2",
"Standard_L64s_v2",
"Standard_L80s_v2",
"Standard_NC6",
"Standard_NC12",
"Standard_NC24",
"Standard_NC24r",
"Standard_ND6s",
"Standard_ND12s",
"Standard_ND24s",
"Standard_ND24rs",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_H8",
"Standard_H16",
"Standard_H16r",
"Standard_H16mr",
"Standard_HB120rs_v2",
"Standard_HC44rs",
"Standard_DC2s",
"Standard_DC4s",
"Standard_DC2s_v2",
"Standard_DC4s_v2",
"Standard_DC8s_v2",
"Standard_DC16s_v2",
"Standard_DC32s_v2",
"Standard_A1_v2",
"Standard_A2_v2",
"Standard_A4_v2",
"Standard_A8_v2",
"Standard_A2m_v2",
"Standard_A4m_v2",
"Standard_A8m_v2"
],
"defaultValue": "Standard_B4s",
"metadata": {
"description": "Specifies the EC2 instance type for your OpenVidu Media Nodes"
"description": "Specifies the VM size for your OpenVidu Media Nodes. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes."
}
},
"adminUsername": {
@ -459,34 +193,12 @@
"variables": {
"isEmptyIp": "[equals(parameters('publicIpAddressObject').newOrExistingOrNone, 'none')]",
"isEmptyDomain": "[equals(parameters('domainName'), '')]",
"arm64InstanceTypes": [
"standard_d2ps_v5",
"standard_d4ps_v5",
"standard_d8ps_v5",
"standard_d16ps_v5",
"standard_d32ps_v5",
"standard_d48ps_v5",
"standard_d64ps_v5",
"standard_d96ps_v5",
"standard_d2pls_v5",
"standard_d4pls_v5",
"standard_d8pls_v5",
"standard_d16pls_v5",
"standard_d32pls_v5",
"standard_d48pls_v5",
"standard_d64pls_v5",
"standard_e2ps_v5",
"standard_e4ps_v5",
"standard_e8ps_v5",
"standard_e16ps_v5",
"standard_e20ps_v5",
"standard_e32ps_v5",
"standard_e48ps_v5",
"standard_e64ps_v5",
"standard_e96ps_v5"
],
"masterUbuntuSku": "[if(contains(variables('arm64InstanceTypes'), toLower(parameters('masterNodeInstanceType'))), '24_04-lts-arm64', '24_04-lts-gen2')]",
"mediaUbuntuSku": "[if(contains(variables('arm64InstanceTypes'), toLower(parameters('mediaNodeInstanceType'))), '24_04-lts-arm64', '24_04-lts-gen2')]",
"masterNodeInstanceTypeLower": "[toLower(parameters('masterNodeInstanceType'))]",
"mediaNodeInstanceTypeLower": "[toLower(parameters('mediaNodeInstanceType'))]",
"isMasterArm64": "[or(or(or(or(or(or(or(contains(variables('masterNodeInstanceTypeLower'), 'ps_v'), contains(variables('masterNodeInstanceTypeLower'), 'pls_v')), contains(variables('masterNodeInstanceTypeLower'), 'pds_v')), contains(variables('masterNodeInstanceTypeLower'), 'plds_v')), contains(variables('masterNodeInstanceTypeLower'), 'psv')), contains(variables('masterNodeInstanceTypeLower'), 'plsv')), contains(variables('masterNodeInstanceTypeLower'), 'pdsv')), contains(variables('masterNodeInstanceTypeLower'), 'pldsv'))]",
"isMediaArm64": "[or(or(or(or(or(or(or(contains(variables('mediaNodeInstanceTypeLower'), 'ps_v'), contains(variables('mediaNodeInstanceTypeLower'), 'pls_v')), contains(variables('mediaNodeInstanceTypeLower'), 'pds_v')), contains(variables('mediaNodeInstanceTypeLower'), 'plds_v')), contains(variables('mediaNodeInstanceTypeLower'), 'psv')), contains(variables('mediaNodeInstanceTypeLower'), 'plsv')), contains(variables('mediaNodeInstanceTypeLower'), 'pdsv')), contains(variables('mediaNodeInstanceTypeLower'), 'pldsv'))]",
"masterUbuntuSku": "[if(variables('isMasterArm64'), '24_04-lts-arm64', '24_04-lts-gen2')]",
"mediaUbuntuSku": "[if(variables('isMediaArm64'), '24_04-lts-arm64', '24_04-lts-gen2')]",
"masterNodeVMSettings": {
"vmName": "[format('{0}-VM-MasterNode', parameters('stackName'))]",
"osDiskType": "StandardSSD_LRS",

View File

@ -260,7 +260,10 @@
"label": "Master Node Instance Type",
"toolTip": "Specifies the Azure instance type for your OpenVidu Master Node",
"recommendedSizes": [
"Standard_B2s"
"Standard_B4s",
"Standard_B4ms",
"Standard_D4ps_v5",
"Standard_D4pls_v5"
],
"constraints": {
"allowedSizes": [],
@ -280,8 +283,10 @@
"label": "Media Node Instance Type",
"toolTip": "Specifies the Azure instance type for your OpenVidu Media Nodes",
"recommendedSizes": [
"Standard_B2s",
"Standard_B4ms"
"Standard_B4s",
"Standard_B4ms",
"Standard_D4ps_v5",
"Standard_D4pls_v5"
],
"constraints": {
"allowedSizes": [],

View File

@ -53,271 +53,14 @@ param initialMeetAdminPassword string = ''
@secure()
param initialMeetApiKey string = ''
@description('Specifies the EC2 instance type for your OpenVidu Master Node')
@allowed([
'Standard_B1s'
'Standard_B1ms'
'Standard_B2s'
'Standard_B2ms'
'Standard_B4ms'
'Standard_B8ms'
'Standard_D2_v3'
'Standard_D4_v3'
'Standard_D8_v3'
'Standard_D16_v3'
'Standard_D32_v3'
'Standard_D48_v3'
'Standard_D64_v3'
'Standard_D2_v4'
'Standard_D4_v4'
'Standard_D8_v4'
'Standard_D16_v4'
'Standard_D32_v4'
'Standard_D48_v4'
'Standard_D64_v4'
'Standard_D96_v4'
'Standard_D2_v5'
'Standard_D4_v5'
'Standard_D8_v5'
'Standard_D16_v5'
'Standard_D32_v5'
'Standard_D48_v5'
'Standard_D64_v5'
'Standard_D96_v5'
'Standard_D2ps_v5'
'Standard_D4ps_v5'
'Standard_D8ps_v5'
'Standard_D16ps_v5'
'Standard_D32ps_v5'
'Standard_D48ps_v5'
'Standard_D64ps_v5'
'Standard_D96ps_v5'
'Standard_D2pls_v5'
'Standard_D4pls_v5'
'Standard_D8pls_v5'
'Standard_D16pls_v5'
'Standard_D32pls_v5'
'Standard_D48pls_v5'
'Standard_D64pls_v5'
'Standard_F2'
'Standard_F4'
'Standard_F8'
'Standard_F16'
'Standard_F32'
'Standard_F64'
'Standard_F72'
'Standard_F2s_v2'
'Standard_F4s_v2'
'Standard_F8s_v2'
'Standard_F16s_v2'
'Standard_F32s_v2'
'Standard_F64s_v2'
'Standard_F72s_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E32_v3'
'Standard_E48_v3'
'Standard_E64_v3'
'Standard_E96_v3'
'Standard_E2_v4'
'Standard_E4_v4'
'Standard_E8_v4'
'Standard_E16_v4'
'Standard_E32_v4'
'Standard_E48_v4'
'Standard_E64_v4'
'Standard_E2_v5'
'Standard_E4_v5'
'Standard_E8_v5'
'Standard_E16_v5'
'Standard_E32_v5'
'Standard_E48_v5'
'Standard_E64_v5'
'Standard_E96_v5'
'Standard_E2ps_v5'
'Standard_E4ps_v5'
'Standard_E8ps_v5'
'Standard_E16ps_v5'
'Standard_E20ps_v5'
'Standard_E32ps_v5'
'Standard_E48ps_v5'
'Standard_E64ps_v5'
'Standard_E96ps_v5'
'Standard_M64'
'Standard_M128'
'Standard_M208ms_v2'
'Standard_M416ms_v2'
'Standard_L4s_v2'
'Standard_L8s_v2'
'Standard_L16s_v2'
'Standard_L32s_v2'
'Standard_L64s_v2'
'Standard_L80s_v2'
'Standard_NC6'
'Standard_NC12'
'Standard_NC24'
'Standard_NC24r'
'Standard_ND6s'
'Standard_ND12s'
'Standard_ND24s'
'Standard_ND24rs'
'Standard_NV6'
'Standard_NV12'
'Standard_NV24'
'Standard_H8'
'Standard_H16'
'Standard_H16r'
'Standard_H16mr'
'Standard_HB120rs_v2'
'Standard_HC44rs'
'Standard_DC2s'
'Standard_DC4s'
'Standard_DC2s_v2'
'Standard_DC4s_v2'
'Standard_DC8s_v2'
'Standard_DC16s_v2'
'Standard_DC32s_v2'
'Standard_A1_v2'
'Standard_A2_v2'
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_A2m_v2'
'Standard_A4m_v2'
'Standard_A8m_v2'
])
param masterNodeInstanceType string = 'Standard_B2s'
@description('Specifies the VM size for your OpenVidu Master Node. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes.')
param masterNodeInstanceType string = 'Standard_B4s'
@description('Size of the disk in GB')
param masterNodesDiskSize int = 100
@description('Specifies the EC2 instance type for your OpenVidu Media Nodes')
@allowed([
'Standard_B1s'
'Standard_B1ms'
'Standard_B2s'
'Standard_B2ms'
'Standard_B4ms'
'Standard_B8ms'
'Standard_D2_v3'
'Standard_D4_v3'
'Standard_D8_v3'
'Standard_D16_v3'
'Standard_D32_v3'
'Standard_D48_v3'
'Standard_D64_v3'
'Standard_D2_v4'
'Standard_D4_v4'
'Standard_D8_v4'
'Standard_D16_v4'
'Standard_D32_v4'
'Standard_D48_v4'
'Standard_D64_v4'
'Standard_D96_v4'
'Standard_D2_v5'
'Standard_D4_v5'
'Standard_D8_v5'
'Standard_D16_v5'
'Standard_D32_v5'
'Standard_D48_v5'
'Standard_D64_v5'
'Standard_D96_v5'
'Standard_D2ps_v5'
'Standard_D4ps_v5'
'Standard_D8ps_v5'
'Standard_D16ps_v5'
'Standard_D32ps_v5'
'Standard_D48ps_v5'
'Standard_D64ps_v5'
'Standard_D96ps_v5'
'Standard_D2pls_v5'
'Standard_D4pls_v5'
'Standard_D8pls_v5'
'Standard_D16pls_v5'
'Standard_D32pls_v5'
'Standard_D48pls_v5'
'Standard_D64pls_v5'
'Standard_F2'
'Standard_F4'
'Standard_F8'
'Standard_F16'
'Standard_F32'
'Standard_F64'
'Standard_F72'
'Standard_F2s_v2'
'Standard_F4s_v2'
'Standard_F8s_v2'
'Standard_F16s_v2'
'Standard_F32s_v2'
'Standard_F64s_v2'
'Standard_F72s_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E32_v3'
'Standard_E48_v3'
'Standard_E64_v3'
'Standard_E96_v3'
'Standard_E2_v4'
'Standard_E4_v4'
'Standard_E8_v4'
'Standard_E16_v4'
'Standard_E32_v4'
'Standard_E48_v4'
'Standard_E64_v4'
'Standard_E2_v5'
'Standard_E4_v5'
'Standard_E8_v5'
'Standard_E16_v5'
'Standard_E32_v5'
'Standard_E48_v5'
'Standard_E64_v5'
'Standard_E96_v5'
'Standard_M64'
'Standard_M128'
'Standard_M208ms_v2'
'Standard_M416ms_v2'
'Standard_L4s_v2'
'Standard_L8s_v2'
'Standard_L16s_v2'
'Standard_L32s_v2'
'Standard_L64s_v2'
'Standard_L80s_v2'
'Standard_NC6'
'Standard_NC12'
'Standard_NC24'
'Standard_NC24r'
'Standard_ND6s'
'Standard_ND12s'
'Standard_ND24s'
'Standard_ND24rs'
'Standard_NV6'
'Standard_NV12'
'Standard_NV24'
'Standard_H8'
'Standard_H16'
'Standard_H16r'
'Standard_H16mr'
'Standard_HB120rs_v2'
'Standard_HC44rs'
'Standard_DC2s'
'Standard_DC4s'
'Standard_DC2s_v2'
'Standard_DC4s_v2'
'Standard_DC8s_v2'
'Standard_DC16s_v2'
'Standard_DC32s_v2'
'Standard_A1_v2'
'Standard_A2_v2'
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_A2m_v2'
'Standard_A4m_v2'
'Standard_A8m_v2'
])
param mediaNodeInstanceType string = 'Standard_B2s'
@description('Specifies the VM size for your OpenVidu Media Nodes. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes.')
param mediaNodeInstanceType string = 'Standard_B4s'
@description('Username for the Virtual Machine.')
param adminUsername string
@ -346,35 +89,17 @@ var isEmptyIp = publicIpAddressObject.newOrExistingOrNone == 'none'
var isEmptyDomain = domainName == ''
var arm64InstanceTypes = [
'standard_d2ps_v5'
'standard_d4ps_v5'
'standard_d8ps_v5'
'standard_d16ps_v5'
'standard_d32ps_v5'
'standard_d48ps_v5'
'standard_d64ps_v5'
'standard_d96ps_v5'
'standard_d2pls_v5'
'standard_d4pls_v5'
'standard_d8pls_v5'
'standard_d16pls_v5'
'standard_d32pls_v5'
'standard_d48pls_v5'
'standard_d64pls_v5'
'standard_e2ps_v5'
'standard_e4ps_v5'
'standard_e8ps_v5'
'standard_e16ps_v5'
'standard_e20ps_v5'
'standard_e32ps_v5'
'standard_e48ps_v5'
'standard_e64ps_v5'
'standard_e96ps_v5'
]
// ARM64 instances are detected by checking for 'p' in the instance type name pattern.
// Azure ARM-based VMs use 'p' to indicate ARM processors (Ampere Altra, Microsoft Cobalt, etc.)
// Examples: Standard_D2ps_v5, Standard_E4pds_v5, Standard_B2pls_v2, etc.
// The pattern checks for 'p' followed by optional letters (like 'l', 'd', 's') before '_v' version suffix
var masterNodeInstanceTypeLower = toLower(masterNodeInstanceType)
var mediaNodeInstanceTypeLower = toLower(mediaNodeInstanceType)
var isMasterArm64 = contains(masterNodeInstanceTypeLower, 'ps_v') || contains(masterNodeInstanceTypeLower, 'pls_v') || contains(masterNodeInstanceTypeLower, 'pds_v') || contains(masterNodeInstanceTypeLower, 'plds_v') || contains(masterNodeInstanceTypeLower, 'psv') || contains(masterNodeInstanceTypeLower, 'plsv') || contains(masterNodeInstanceTypeLower, 'pdsv') || contains(masterNodeInstanceTypeLower, 'pldsv')
var isMediaArm64 = contains(mediaNodeInstanceTypeLower, 'ps_v') || contains(mediaNodeInstanceTypeLower, 'pls_v') || contains(mediaNodeInstanceTypeLower, 'pds_v') || contains(mediaNodeInstanceTypeLower, 'plds_v') || contains(mediaNodeInstanceTypeLower, 'psv') || contains(mediaNodeInstanceTypeLower, 'plsv') || contains(mediaNodeInstanceTypeLower, 'pdsv') || contains(mediaNodeInstanceTypeLower, 'pldsv')
var masterUbuntuSku = contains(arm64InstanceTypes, toLower(masterNodeInstanceType)) ? '24_04-lts-arm64' : '24_04-lts-gen2'
var mediaUbuntuSku = contains(arm64InstanceTypes, toLower(mediaNodeInstanceType)) ? '24_04-lts-arm64' : '24_04-lts-gen2'
var masterUbuntuSku = isMasterArm64 ? '24_04-lts-arm64' : '24_04-lts-gen2'
var mediaUbuntuSku = isMediaArm64 ? '24_04-lts-arm64' : '24_04-lts-gen2'
var masterNodeVMSettings = {
osDiskType: 'StandardSSD_LRS'

View File

@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.37.4.10188",
"templateHash": "12176049289257962193"
"templateHash": "4723246277088565564"
}
},
"parameters": {
@ -108,142 +108,9 @@
},
"masterNodeInstanceType": {
"type": "string",
"defaultValue": "Standard_B2s",
"allowedValues": [
"Standard_B1s",
"Standard_B1ms",
"Standard_B2s",
"Standard_B2ms",
"Standard_B4ms",
"Standard_B8ms",
"Standard_D2_v3",
"Standard_D4_v3",
"Standard_D8_v3",
"Standard_D16_v3",
"Standard_D32_v3",
"Standard_D48_v3",
"Standard_D64_v3",
"Standard_D2_v4",
"Standard_D4_v4",
"Standard_D8_v4",
"Standard_D16_v4",
"Standard_D32_v4",
"Standard_D48_v4",
"Standard_D64_v4",
"Standard_D96_v4",
"Standard_D2_v5",
"Standard_D4_v5",
"Standard_D8_v5",
"Standard_D16_v5",
"Standard_D32_v5",
"Standard_D48_v5",
"Standard_D64_v5",
"Standard_D96_v5",
"Standard_D2ps_v5",
"Standard_D4ps_v5",
"Standard_D8ps_v5",
"Standard_D16ps_v5",
"Standard_D32ps_v5",
"Standard_D48ps_v5",
"Standard_D64ps_v5",
"Standard_D96ps_v5",
"Standard_D2pls_v5",
"Standard_D4pls_v5",
"Standard_D8pls_v5",
"Standard_D16pls_v5",
"Standard_D32pls_v5",
"Standard_D48pls_v5",
"Standard_D64pls_v5",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_F32",
"Standard_F64",
"Standard_F72",
"Standard_F2s_v2",
"Standard_F4s_v2",
"Standard_F8s_v2",
"Standard_F16s_v2",
"Standard_F32s_v2",
"Standard_F64s_v2",
"Standard_F72s_v2",
"Standard_E2_v3",
"Standard_E4_v3",
"Standard_E8_v3",
"Standard_E16_v3",
"Standard_E32_v3",
"Standard_E48_v3",
"Standard_E64_v3",
"Standard_E96_v3",
"Standard_E2_v4",
"Standard_E4_v4",
"Standard_E8_v4",
"Standard_E16_v4",
"Standard_E32_v4",
"Standard_E48_v4",
"Standard_E64_v4",
"Standard_E2_v5",
"Standard_E4_v5",
"Standard_E8_v5",
"Standard_E16_v5",
"Standard_E32_v5",
"Standard_E48_v5",
"Standard_E64_v5",
"Standard_E96_v5",
"Standard_E2ps_v5",
"Standard_E4ps_v5",
"Standard_E8ps_v5",
"Standard_E16ps_v5",
"Standard_E20ps_v5",
"Standard_E32ps_v5",
"Standard_E48ps_v5",
"Standard_E64ps_v5",
"Standard_E96ps_v5",
"Standard_M64",
"Standard_M128",
"Standard_M208ms_v2",
"Standard_M416ms_v2",
"Standard_L4s_v2",
"Standard_L8s_v2",
"Standard_L16s_v2",
"Standard_L32s_v2",
"Standard_L64s_v2",
"Standard_L80s_v2",
"Standard_NC6",
"Standard_NC12",
"Standard_NC24",
"Standard_NC24r",
"Standard_ND6s",
"Standard_ND12s",
"Standard_ND24s",
"Standard_ND24rs",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_H8",
"Standard_H16",
"Standard_H16r",
"Standard_H16mr",
"Standard_HB120rs_v2",
"Standard_HC44rs",
"Standard_DC2s",
"Standard_DC4s",
"Standard_DC2s_v2",
"Standard_DC4s_v2",
"Standard_DC8s_v2",
"Standard_DC16s_v2",
"Standard_DC32s_v2",
"Standard_A1_v2",
"Standard_A2_v2",
"Standard_A4_v2",
"Standard_A8_v2",
"Standard_A2m_v2",
"Standard_A4m_v2",
"Standard_A8m_v2"
],
"defaultValue": "Standard_B4s",
"metadata": {
"description": "Specifies the EC2 instance type for your OpenVidu Master Node"
"description": "Specifies the VM size for your OpenVidu Master Node. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes."
}
},
"masterNodesDiskSize": {
@ -255,133 +122,9 @@
},
"mediaNodeInstanceType": {
"type": "string",
"defaultValue": "Standard_B2s",
"allowedValues": [
"Standard_B1s",
"Standard_B1ms",
"Standard_B2s",
"Standard_B2ms",
"Standard_B4ms",
"Standard_B8ms",
"Standard_D2_v3",
"Standard_D4_v3",
"Standard_D8_v3",
"Standard_D16_v3",
"Standard_D32_v3",
"Standard_D48_v3",
"Standard_D64_v3",
"Standard_D2_v4",
"Standard_D4_v4",
"Standard_D8_v4",
"Standard_D16_v4",
"Standard_D32_v4",
"Standard_D48_v4",
"Standard_D64_v4",
"Standard_D96_v4",
"Standard_D2_v5",
"Standard_D4_v5",
"Standard_D8_v5",
"Standard_D16_v5",
"Standard_D32_v5",
"Standard_D48_v5",
"Standard_D64_v5",
"Standard_D96_v5",
"Standard_D2ps_v5",
"Standard_D4ps_v5",
"Standard_D8ps_v5",
"Standard_D16ps_v5",
"Standard_D32ps_v5",
"Standard_D48ps_v5",
"Standard_D64ps_v5",
"Standard_D96ps_v5",
"Standard_D2pls_v5",
"Standard_D4pls_v5",
"Standard_D8pls_v5",
"Standard_D16pls_v5",
"Standard_D32pls_v5",
"Standard_D48pls_v5",
"Standard_D64pls_v5",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_F32",
"Standard_F64",
"Standard_F72",
"Standard_F2s_v2",
"Standard_F4s_v2",
"Standard_F8s_v2",
"Standard_F16s_v2",
"Standard_F32s_v2",
"Standard_F64s_v2",
"Standard_F72s_v2",
"Standard_E2_v3",
"Standard_E4_v3",
"Standard_E8_v3",
"Standard_E16_v3",
"Standard_E32_v3",
"Standard_E48_v3",
"Standard_E64_v3",
"Standard_E96_v3",
"Standard_E2_v4",
"Standard_E4_v4",
"Standard_E8_v4",
"Standard_E16_v4",
"Standard_E32_v4",
"Standard_E48_v4",
"Standard_E64_v4",
"Standard_E2_v5",
"Standard_E4_v5",
"Standard_E8_v5",
"Standard_E16_v5",
"Standard_E32_v5",
"Standard_E48_v5",
"Standard_E64_v5",
"Standard_E96_v5",
"Standard_M64",
"Standard_M128",
"Standard_M208ms_v2",
"Standard_M416ms_v2",
"Standard_L4s_v2",
"Standard_L8s_v2",
"Standard_L16s_v2",
"Standard_L32s_v2",
"Standard_L64s_v2",
"Standard_L80s_v2",
"Standard_NC6",
"Standard_NC12",
"Standard_NC24",
"Standard_NC24r",
"Standard_ND6s",
"Standard_ND12s",
"Standard_ND24s",
"Standard_ND24rs",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_H8",
"Standard_H16",
"Standard_H16r",
"Standard_H16mr",
"Standard_HB120rs_v2",
"Standard_HC44rs",
"Standard_DC2s",
"Standard_DC4s",
"Standard_DC2s_v2",
"Standard_DC4s_v2",
"Standard_DC8s_v2",
"Standard_DC16s_v2",
"Standard_DC32s_v2",
"Standard_A1_v2",
"Standard_A2_v2",
"Standard_A4_v2",
"Standard_A8_v2",
"Standard_A2m_v2",
"Standard_A4m_v2",
"Standard_A8m_v2"
],
"defaultValue": "Standard_B4s",
"metadata": {
"description": "Specifies the EC2 instance type for your OpenVidu Media Nodes"
"description": "Specifies the VM size for your OpenVidu Media Nodes. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes."
}
},
"adminUsername": {
@ -464,34 +207,12 @@
"variables": {
"isEmptyIp": "[equals(parameters('publicIpAddressObject').newOrExistingOrNone, 'none')]",
"isEmptyDomain": "[equals(parameters('domainName'), '')]",
"arm64InstanceTypes": [
"standard_d2ps_v5",
"standard_d4ps_v5",
"standard_d8ps_v5",
"standard_d16ps_v5",
"standard_d32ps_v5",
"standard_d48ps_v5",
"standard_d64ps_v5",
"standard_d96ps_v5",
"standard_d2pls_v5",
"standard_d4pls_v5",
"standard_d8pls_v5",
"standard_d16pls_v5",
"standard_d32pls_v5",
"standard_d48pls_v5",
"standard_d64pls_v5",
"standard_e2ps_v5",
"standard_e4ps_v5",
"standard_e8ps_v5",
"standard_e16ps_v5",
"standard_e20ps_v5",
"standard_e32ps_v5",
"standard_e48ps_v5",
"standard_e64ps_v5",
"standard_e96ps_v5"
],
"masterUbuntuSku": "[if(contains(variables('arm64InstanceTypes'), toLower(parameters('masterNodeInstanceType'))), '24_04-lts-arm64', '24_04-lts-gen2')]",
"mediaUbuntuSku": "[if(contains(variables('arm64InstanceTypes'), toLower(parameters('mediaNodeInstanceType'))), '24_04-lts-arm64', '24_04-lts-gen2')]",
"masterNodeInstanceTypeLower": "[toLower(parameters('masterNodeInstanceType'))]",
"mediaNodeInstanceTypeLower": "[toLower(parameters('mediaNodeInstanceType'))]",
"isMasterArm64": "[or(or(or(or(or(or(or(contains(variables('masterNodeInstanceTypeLower'), 'ps_v'), contains(variables('masterNodeInstanceTypeLower'), 'pls_v')), contains(variables('masterNodeInstanceTypeLower'), 'pds_v')), contains(variables('masterNodeInstanceTypeLower'), 'plds_v')), contains(variables('masterNodeInstanceTypeLower'), 'psv')), contains(variables('masterNodeInstanceTypeLower'), 'plsv')), contains(variables('masterNodeInstanceTypeLower'), 'pdsv')), contains(variables('masterNodeInstanceTypeLower'), 'pldsv'))]",
"isMediaArm64": "[or(or(or(or(or(or(or(contains(variables('mediaNodeInstanceTypeLower'), 'ps_v'), contains(variables('mediaNodeInstanceTypeLower'), 'pls_v')), contains(variables('mediaNodeInstanceTypeLower'), 'pds_v')), contains(variables('mediaNodeInstanceTypeLower'), 'plds_v')), contains(variables('mediaNodeInstanceTypeLower'), 'psv')), contains(variables('mediaNodeInstanceTypeLower'), 'plsv')), contains(variables('mediaNodeInstanceTypeLower'), 'pdsv')), contains(variables('mediaNodeInstanceTypeLower'), 'pldsv'))]",
"masterUbuntuSku": "[if(variables('isMasterArm64'), '24_04-lts-arm64', '24_04-lts-gen2')]",
"mediaUbuntuSku": "[if(variables('isMediaArm64'), '24_04-lts-arm64', '24_04-lts-gen2')]",
"masterNodeVMSettings": {
"osDiskType": "StandardSSD_LRS",
"osDiskSize": "[parameters('masterNodesDiskSize')]",

View File

@ -260,7 +260,10 @@
"label": "Master Node Instance Type",
"toolTip": "Specifies the Azure instance type for your OpenVidu Master Node",
"recommendedSizes": [
"Standard_B2s"
"Standard_B4s",
"Standard_B4ms",
"Standard_D4ps_v5",
"Standard_D4pls_v5"
],
"constraints": {
"allowedSizes": [],
@ -295,8 +298,10 @@
"label": "Media Node Instance Type",
"toolTip": "Specifies the Azure instance type for your OpenVidu Media Nodes",
"recommendedSizes": [
"Standard_B2s",
"Standard_B4ms"
"Standard_B4s",
"Standard_B4ms",
"Standard_D4ps_v5",
"Standard_D4pls_v5"
],
"constraints": {
"allowedSizes": [],

View File

@ -54,141 +54,8 @@ param openviduLicense string
param rtcEngine string = 'pion'
// Azure instance config
@description('Specifies the azure vm size for your OpenVidu instance')
@allowed([
'Standard_B1s'
'Standard_B1ms'
'Standard_B2s'
'Standard_B2ms'
'Standard_B4ms'
'Standard_B8ms'
'Standard_D2_v3'
'Standard_D4_v3'
'Standard_D8_v3'
'Standard_D16_v3'
'Standard_D32_v3'
'Standard_D48_v3'
'Standard_D64_v3'
'Standard_D2_v4'
'Standard_D4_v4'
'Standard_D8_v4'
'Standard_D16_v4'
'Standard_D32_v4'
'Standard_D48_v4'
'Standard_D64_v4'
'Standard_D96_v4'
'Standard_D2_v5'
'Standard_D4_v5'
'Standard_D8_v5'
'Standard_D16_v5'
'Standard_D32_v5'
'Standard_D48_v5'
'Standard_D64_v5'
'Standard_D96_v5'
'Standard_D2ps_v5'
'Standard_D4ps_v5'
'Standard_D8ps_v5'
'Standard_D16ps_v5'
'Standard_D32ps_v5'
'Standard_D48ps_v5'
'Standard_D64ps_v5'
'Standard_D2pls_v5'
'Standard_D4pls_v5'
'Standard_D8pls_v5'
'Standard_D16pls_v5'
'Standard_D32pls_v5'
'Standard_D48pls_v5'
'Standard_D64pls_v5'
'Standard_D96ps_v5'
'Standard_F2'
'Standard_F4'
'Standard_F8'
'Standard_F16'
'Standard_F32'
'Standard_F64'
'Standard_F72'
'Standard_F2s_v2'
'Standard_F4s_v2'
'Standard_F8s_v2'
'Standard_F16s_v2'
'Standard_F32s_v2'
'Standard_F64s_v2'
'Standard_F72s_v2'
'Standard_E2_v3'
'Standard_E4_v3'
'Standard_E8_v3'
'Standard_E16_v3'
'Standard_E32_v3'
'Standard_E48_v3'
'Standard_E64_v3'
'Standard_E96_v3'
'Standard_E2_v4'
'Standard_E4_v4'
'Standard_E8_v4'
'Standard_E16_v4'
'Standard_E32_v4'
'Standard_E48_v4'
'Standard_E64_v4'
'Standard_E2_v5'
'Standard_E4_v5'
'Standard_E8_v5'
'Standard_E16_v5'
'Standard_E32_v5'
'Standard_E48_v5'
'Standard_E64_v5'
'Standard_E96_v5'
'Standard_E2ps_v5'
'Standard_E4ps_v5'
'Standard_E8ps_v5'
'Standard_E16ps_v5'
'Standard_E20ps_v5'
'Standard_E32ps_v5'
'Standard_E48ps_v5'
'Standard_E64ps_v5'
'Standard_E96ps_v5'
'Standard_M64'
'Standard_M128'
'Standard_M208ms_v2'
'Standard_M416ms_v2'
'Standard_L4s_v2'
'Standard_L8s_v2'
'Standard_L16s_v2'
'Standard_L32s_v2'
'Standard_L64s_v2'
'Standard_L80s_v2'
'Standard_NC6'
'Standard_NC12'
'Standard_NC24'
'Standard_NC24r'
'Standard_ND6s'
'Standard_ND12s'
'Standard_ND24s'
'Standard_ND24rs'
'Standard_NV6'
'Standard_NV12'
'Standard_NV24'
'Standard_H8'
'Standard_H16'
'Standard_H16r'
'Standard_H16mr'
'Standard_HB120rs_v2'
'Standard_HC44rs'
'Standard_DC2s'
'Standard_DC4s'
'Standard_DC2s_v2'
'Standard_DC4s_v2'
'Standard_DC8s_v2'
'Standard_DC16s_v2'
'Standard_DC32s_v2'
'Standard_A1_v2'
'Standard_A2_v2'
'Standard_A4_v2'
'Standard_A8_v2'
'Standard_A2m_v2'
'Standard_A4m_v2'
'Standard_A8m_v2'
])
param instanceType string = 'Standard_B2s' // Azure instance types.
@description('Specifies the azure vm size for your OpenVidu instance. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes.')
param instanceType string = 'Standard_B4s'
@description('Username for the Virtual Machine.')
param adminUsername string
@ -207,34 +74,14 @@ var isEmptyIp = publicIpAddressObject.newOrExistingOrNone == 'none'
//Condition for the domain name
var isEmptyDomain = domainName == ''
var arm64InstanceTypes = [
'standard_d2ps_v5'
'standard_d4ps_v5'
'standard_d8ps_v5'
'standard_d16ps_v5'
'standard_d32ps_v5'
'standard_d48ps_v5'
'standard_d64ps_v5'
'standard_d2pls_v5'
'standard_d4pls_v5'
'standard_d8pls_v5'
'standard_d16pls_v5'
'standard_d32pls_v5'
'standard_d48pls_v5'
'standard_d64pls_v5'
'standard_d96ps_v5'
'standard_e2ps_v5'
'standard_e4ps_v5'
'standard_e8ps_v5'
'standard_e16ps_v5'
'standard_e20ps_v5'
'standard_e32ps_v5'
'standard_e48ps_v5'
'standard_e64ps_v5'
'standard_e96ps_v5'
]
// ARM64 instances are detected by checking for 'p' in the instance type name pattern.
// Azure ARM-based VMs use 'p' to indicate ARM processors (Ampere Altra, Microsoft Cobalt, etc.)
// Examples: Standard_D2ps_v5, Standard_E4pds_v5, Standard_B2pls_v2, etc.
// The pattern checks for 'p' followed by optional letters (like 'l', 'd', 's') before '_v' version suffix
var instanceTypeLower = toLower(instanceType)
var isArm64Instance = contains(instanceTypeLower, 'ps_v') || contains(instanceTypeLower, 'pls_v') || contains(instanceTypeLower, 'pds_v') || contains(instanceTypeLower, 'plds_v') || contains(instanceTypeLower, 'psv') || contains(instanceTypeLower, 'plsv') || contains(instanceTypeLower, 'pdsv') || contains(instanceTypeLower, 'pldsv')
var ubuntuSku = contains(arm64InstanceTypes, toLower(instanceType)) ? '24_04-lts-arm64' : '24_04-lts-gen2'
var ubuntuSku = isArm64Instance ? '24_04-lts-arm64' : '24_04-lts-gen2'
//Variables for deployment
var networkSettings = {

View File

@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.37.4.10188",
"templateHash": "14399294642253213945"
"templateHash": "14237993136432487485"
}
},
"parameters": {
@ -108,142 +108,9 @@
},
"instanceType": {
"type": "string",
"defaultValue": "Standard_B2s",
"allowedValues": [
"Standard_B1s",
"Standard_B1ms",
"Standard_B2s",
"Standard_B2ms",
"Standard_B4ms",
"Standard_B8ms",
"Standard_D2_v3",
"Standard_D4_v3",
"Standard_D8_v3",
"Standard_D16_v3",
"Standard_D32_v3",
"Standard_D48_v3",
"Standard_D64_v3",
"Standard_D2_v4",
"Standard_D4_v4",
"Standard_D8_v4",
"Standard_D16_v4",
"Standard_D32_v4",
"Standard_D48_v4",
"Standard_D64_v4",
"Standard_D96_v4",
"Standard_D2_v5",
"Standard_D4_v5",
"Standard_D8_v5",
"Standard_D16_v5",
"Standard_D32_v5",
"Standard_D48_v5",
"Standard_D64_v5",
"Standard_D96_v5",
"Standard_D2ps_v5",
"Standard_D4ps_v5",
"Standard_D8ps_v5",
"Standard_D16ps_v5",
"Standard_D32ps_v5",
"Standard_D48ps_v5",
"Standard_D64ps_v5",
"Standard_D2pls_v5",
"Standard_D4pls_v5",
"Standard_D8pls_v5",
"Standard_D16pls_v5",
"Standard_D32pls_v5",
"Standard_D48pls_v5",
"Standard_D64pls_v5",
"Standard_D96ps_v5",
"Standard_F2",
"Standard_F4",
"Standard_F8",
"Standard_F16",
"Standard_F32",
"Standard_F64",
"Standard_F72",
"Standard_F2s_v2",
"Standard_F4s_v2",
"Standard_F8s_v2",
"Standard_F16s_v2",
"Standard_F32s_v2",
"Standard_F64s_v2",
"Standard_F72s_v2",
"Standard_E2_v3",
"Standard_E4_v3",
"Standard_E8_v3",
"Standard_E16_v3",
"Standard_E32_v3",
"Standard_E48_v3",
"Standard_E64_v3",
"Standard_E96_v3",
"Standard_E2_v4",
"Standard_E4_v4",
"Standard_E8_v4",
"Standard_E16_v4",
"Standard_E32_v4",
"Standard_E48_v4",
"Standard_E64_v4",
"Standard_E2_v5",
"Standard_E4_v5",
"Standard_E8_v5",
"Standard_E16_v5",
"Standard_E32_v5",
"Standard_E48_v5",
"Standard_E64_v5",
"Standard_E96_v5",
"Standard_E2ps_v5",
"Standard_E4ps_v5",
"Standard_E8ps_v5",
"Standard_E16ps_v5",
"Standard_E20ps_v5",
"Standard_E32ps_v5",
"Standard_E48ps_v5",
"Standard_E64ps_v5",
"Standard_E96ps_v5",
"Standard_M64",
"Standard_M128",
"Standard_M208ms_v2",
"Standard_M416ms_v2",
"Standard_L4s_v2",
"Standard_L8s_v2",
"Standard_L16s_v2",
"Standard_L32s_v2",
"Standard_L64s_v2",
"Standard_L80s_v2",
"Standard_NC6",
"Standard_NC12",
"Standard_NC24",
"Standard_NC24r",
"Standard_ND6s",
"Standard_ND12s",
"Standard_ND24s",
"Standard_ND24rs",
"Standard_NV6",
"Standard_NV12",
"Standard_NV24",
"Standard_H8",
"Standard_H16",
"Standard_H16r",
"Standard_H16mr",
"Standard_HB120rs_v2",
"Standard_HC44rs",
"Standard_DC2s",
"Standard_DC4s",
"Standard_DC2s_v2",
"Standard_DC4s_v2",
"Standard_DC8s_v2",
"Standard_DC16s_v2",
"Standard_DC32s_v2",
"Standard_A1_v2",
"Standard_A2_v2",
"Standard_A4_v2",
"Standard_A8_v2",
"Standard_A2m_v2",
"Standard_A4m_v2",
"Standard_A8m_v2"
],
"defaultValue": "Standard_B4s",
"metadata": {
"description": "Specifies the azure vm size for your OpenVidu instance"
"description": "Specifies the azure vm size for your OpenVidu instance. You can use any valid Azure VM size (e.g., Standard_B4s, Standard_D4s_v5, Standard_E4ps_v5). See https://learn.microsoft.com/en-us/azure/virtual-machines/sizes for available sizes."
}
},
"adminUsername": {
@ -280,33 +147,9 @@
"variables": {
"isEmptyIp": "[equals(parameters('publicIpAddressObject').newOrExistingOrNone, 'none')]",
"isEmptyDomain": "[equals(parameters('domainName'), '')]",
"arm64InstanceTypes": [
"standard_d2ps_v5",
"standard_d4ps_v5",
"standard_d8ps_v5",
"standard_d16ps_v5",
"standard_d32ps_v5",
"standard_d48ps_v5",
"standard_d64ps_v5",
"standard_d2pls_v5",
"standard_d4pls_v5",
"standard_d8pls_v5",
"standard_d16pls_v5",
"standard_d32pls_v5",
"standard_d48pls_v5",
"standard_d64pls_v5",
"standard_d96ps_v5",
"standard_e2ps_v5",
"standard_e4ps_v5",
"standard_e8ps_v5",
"standard_e16ps_v5",
"standard_e20ps_v5",
"standard_e32ps_v5",
"standard_e48ps_v5",
"standard_e64ps_v5",
"standard_e96ps_v5"
],
"ubuntuSku": "[if(contains(variables('arm64InstanceTypes'), toLower(parameters('instanceType'))), '24_04-lts-arm64', '24_04-lts-gen2')]",
"instanceTypeLower": "[toLower(parameters('instanceType'))]",
"isArm64Instance": "[or(or(or(or(or(or(or(contains(variables('instanceTypeLower'), 'ps_v'), contains(variables('instanceTypeLower'), 'pls_v')), contains(variables('instanceTypeLower'), 'pds_v')), contains(variables('instanceTypeLower'), 'plds_v')), contains(variables('instanceTypeLower'), 'psv')), contains(variables('instanceTypeLower'), 'plsv')), contains(variables('instanceTypeLower'), 'pdsv')), contains(variables('instanceTypeLower'), 'pldsv'))]",
"ubuntuSku": "[if(variables('isArm64Instance'), '24_04-lts-arm64', '24_04-lts-gen2')]",
"networkSettings": {
"privateIPaddressNetInterface": "10.0.0.5",
"vNetAddressPrefix": "10.0.0.0/16",

View File

@ -259,8 +259,10 @@
"label": "Type of Instance",
"toolTip": "Specifies the azure vm size for your OpenVidu instance",
"recommendedSizes": [
"Standard_B2s",
"Standard_B4ms"
"Standard_B4s",
"Standard_B4ms",
"Standard_D4ps_v5",
"Standard_D4pls_v5"
],
"constraints": {
"allowedSizes": [],