From 6dd7721e70243f86fbcc6ecd1498488c717578dd Mon Sep 17 00:00:00 2001 From: Jaimie Date: Fri, 19 Jun 2026 10:29:37 +0100 Subject: [PATCH 1/8] Feature - New VM sizes --- templates/workspace_services/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/workspace_services/README.md b/templates/workspace_services/README.md index d6b8030..549f8f0 100644 --- a/templates/workspace_services/README.md +++ b/templates/workspace_services/README.md @@ -9,6 +9,8 @@ Workspace Service Templates are located in this folder. We make use of our own c ## Available VM sizes +> Updates to be made + | VM Size | vCPU | RAM (GB) | GPU | GPU Memory (GB) | Price/Hour | Azure SKU | | ---------------------------------- | ---- | -------- | ---------- | --------------- | ---------- | ------------------------- | | **CPU-Only VMs** | | | | | | | From cb71be6ded9c4b8d2d671cead53a8eac552ae627 Mon Sep 17 00:00:00 2001 From: Jaimie Date: Fri, 19 Jun 2026 14:21:28 +0100 Subject: [PATCH 2/8] Initial VM size updates - also testing out a new method for displaying VM information to TRE users --- .../guacamole-azure-linuxvm-ouh2/porter.yaml | 16 +- .../template_schema.json | 14 +- .../porter.yaml | 16 +- .../template_schema.json | 583 ++++++++++-------- 4 files changed, 364 insertions(+), 265 deletions(-) diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml index c70ddea..30fe43b 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-linuxvm-ouh2 -version: 1.2.0 +version: 1.2.1 description: "An Azure TRE User Resource Template for Guacamole (Linux)" dockerfile: Dockerfile.tmpl registry: azuretre @@ -12,14 +12,18 @@ custom: # CPU-only VMs (ordered by price) "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour": Standard_B2s "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour": Standard_D2s_v5 - "D4as_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour": Standard_D4as_v5 - "F4s_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour": Standard_F4s_v2 + "Fas Series | 2 CPU | 8GB RAM | £0.10/ hour": Standard_F2as_v6 + "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour": Standard_D4as_v5 + "Fas Series | 4 CPU | 16GB RAM | £0.25/ hour": Standard_F4as_v6 + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour": Standard_F4s_v2 "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour": Standard_D4s_v5 - "F8s_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour": Standard_F8s_v2 + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour": Standard_F8s_v2 "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour": Standard_D8s_v5 + "Fas Series | 8 CPU | 32GB RAM | £0.50/ hour": Standard_F8as_v6 "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour": Standard_E8as_v4 - "F16s_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour": Standard_F16s_v2 + "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour": Standard_F16s_v2 "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour": Standard_D16s_v5 + "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour": Standard_E16as_v4 # GPU VMs - A10 Series (ordered by price) "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour": Standard_NV6ads_A10_v5 "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour": Standard_NV12ads_A10_v5 @@ -137,7 +141,7 @@ parameters: default: "" - name: vm_size type: string - default: "F4s_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour" + default: "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour" - name: shared_storage_access type: boolean default: true diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json index 1ebd444..f6b379b 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json @@ -48,18 +48,22 @@ "type": "string", "title": "VM Size", "description": "Select size of VM. VMs can only be resized within the same series (e.g., Dsv5 → Dsv5). Resizing across different series is not supported. GPU VMs should only be deployed when actively needed due to limited quota. H100 quota is especially limited - deploy only for essential workloads and limited periods.", - "default": "F4s_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", + "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", "enum": [ "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", - "D4as_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour", - "F4s_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", + "Fas Series | 2 CPU | 8GB RAM | £0.10/ hour", + "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour", + "Fas Series | 4 CPU | 16GB RAM | £0.25/ hour", + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour", - "F8s_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour", + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour", "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour", + "Fas Series | 8 CPU | 32GB RAM | £0.50/ hour", "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour", - "F16s_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", + "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour", + "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour", "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour", "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour", "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour", diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml index b038f30..de4789c 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-windowsvm-ouh2 -version: 1.1.8 +version: 1.2.0 description: "An Azure TRE User Resource Template for Guacamole (Windows)" dockerfile: Dockerfile.tmpl registry: azuretre @@ -12,14 +12,18 @@ custom: # CPU-only VMs (ordered by price) "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour": Standard_B2s "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour": Standard_D2s_v5 - "D4as_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour": Standard_D4as_v5 - "F4s_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour": Standard_F4s_v2 + "Fas Series | 2 CPU | 8GB RAM | £0.20/ hour": Standard_F2as_v6 + "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour": Standard_D4as_v5 + "Fas Series | 4 CPU | 16GB RAM | £0.40/ hour": Standard_F4as_v6 + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour": Standard_F4s_v2 "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour": Standard_D4s_v5 - "F8s_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour": Standard_F8s_v2 + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour": Standard_F8s_v2 "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour": Standard_D8s_v5 + "Fas Series | 8 CPU | 32GB RAM | £0.75/ hour": Standard_F8as_v6 "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour": Standard_E8as_v4 - "F16s_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour": Standard_F16s_v2 + "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour": Standard_F16s_v2 "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour": Standard_D16s_v5 + "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour": Standard_E16as_v4 # GPU VMs - A10 Series (ordered by price) "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour": Standard_NV6ads_A10_v5 "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour": Standard_NV12ads_A10_v5 @@ -119,7 +123,7 @@ parameters: default: "" - name: vm_size type: string - default: "F4s_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour" + default: "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour" - name: shared_storage_access type: boolean default: true diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json index c75cbc4..13b5ba4 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json @@ -4,266 +4,353 @@ "type": "object", "title": "Windows Virtual Machine", "description": "Windows virtual machine ", - "required": [ - ], + "required": [], "authorizedRoles": [ - "WorkspaceOwner", - "WorkspaceResearcher" + "WorkspaceOwner", + "WorkspaceResearcher" ], "properties": { - "display_name": { - "type": "string", - "title": "Display name for the VM", - "description": "The display name of the VM.", - "default": "My Windows VM", - "updateable": true - }, - "description": { - "type": "string", - "title": "Description of the VM", - "description": "Describe what this VM is used for.", - "default": "I will use this VM for research.", - "updateable": true - }, - "os_image": { - "$id": "#/properties/os_image", - "type": "string", - "title": "Windows image", - "description": "Select Windows image to use for VM. (OUH image will not work with the H100 GPU VMs at the moment.)", - "default": "OUH Server 2019 Data Science VM", - "enum": [ - "Windows 10", - "Windows 11", - "OUH Server 2019 Data Science VM" - ] - }, - "admin_username": { - "type": "string", - "title": "Admin username", - "description": "Overide automatic admin username generation.", - "default": "" - }, - "vm_size": { - "$id": "#/properties/vm_size", - "type": "string", - "title": "VM Size", - "description": "Select size of VM. VMs can only be resized within the same series (e.g., Dsv5 → Dsv5). Resizing across different series is not supported. GPU VMs should only be deployed when actively needed due to limited quota. H100 quota is especially limited - deploy only for essential workloads and limited periods.", - "default": "F4s_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", - "enum": [ - "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", - "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", - "D4as_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "F4s_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", - "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "F8s_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", - "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", - "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", - "F16s_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", - "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", - "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", - "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", - "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", - "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", - "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", - "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", - "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour" - ], - "updateable": true - }, - "shared_storage_access": { - "$id": "#/properties/shared_storage_access", - "type": "boolean", - "title": "Shared storage", - "default": true, - "description": "Enable access to shared storage" - }, - "enable_shutdown_schedule": { - "$id": "#/properties/enable_shutdown_schedule", - "type": "boolean", - "title": "Enable Shutdown Schedule", - "default": false, - "description": "Enable automatic shutdown schedule for the VM" - }, - "assign_to_another_user": { - "type": "boolean", - "title": "Assign this VM to another user", - "description": "Check this box if you want to assign this VM to another user.", - "default": false, - "updateable": false - } - }, - "allOf": [ - { - "if": { - "properties": { - "enable_shutdown_schedule": { - "const": true - } + "display_name": { + "type": "string", + "title": "Display name for the VM", + "description": "The display name of the VM.", + "default": "My Windows VM", + "updateable": true }, - "required": [ - "enable_shutdown_schedule" - ] - }, - "then": { - "properties": { - "shutdown_time": { + "description": { "type": "string", - "title": "Shutdown Time", - "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", - "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", - "default": "1800" - }, - "shutdown_timezone": { + "title": "Description of the VM", + "description": "Describe what this VM is used for.", + "default": "I will use this VM for research.", + "updateable": true + }, + "os_image": { + "$id": "#/properties/os_image", "type": "string", - "title": "Shutdown Timezone", - "description": "Timezone for the shutdown schedule", - "default": "UTC", + "title": "Windows image", + "description": "Select Windows image to use for VM. (OUH image will not work with the H100 GPU VMs at the moment.)", + "default": "OUH Server 2019 Data Science VM", "enum": [ - "Afghanistan Standard Time", - "Alaskan Standard Time", - "Arab Standard Time", - "Arabian Standard Time", - "Arabic Standard Time", - "Argentina Standard Time", - "Atlantic Standard Time", - "AUS Central Standard Time", - "AUS Eastern Standard Time", - "Azerbaijan Standard Time", - "Azores Standard Time", - "Bahia Standard Time", - "Bangladesh Standard Time", - "Belarus Standard Time", - "Canada Central Standard Time", - "Cape Verde Standard Time", - "Caucasus Standard Time", - "Cen. Australia Standard Time", - "Central America Standard Time", - "Central Asia Standard Time", - "Central Brazilian Standard Time", - "Central Europe Standard Time", - "Central European Standard Time", - "Central Pacific Standard Time", - "Central Standard Time (Mexico)", - "Central Standard Time", - "China Standard Time", - "Dateline Standard Time", - "E. Africa Standard Time", - "E. Australia Standard Time", - "E. Europe Standard Time", - "E. South America Standard Time", - "Eastern Standard Time (Mexico)", - "Eastern Standard Time", - "Egypt Standard Time", - "Ekaterinburg Standard Time", - "Fiji Standard Time", - "FLE Standard Time", - "Georgian Standard Time", - "GMT Standard Time", - "Greenland Standard Time", - "Greenwich Standard Time", - "GTB Standard Time", - "Hawaiian Standard Time", - "India Standard Time", - "Iran Standard Time", - "Israel Standard Time", - "Jordan Standard Time", - "Kaliningrad Standard Time", - "Korea Standard Time", - "Libya Standard Time", - "Line Islands Standard Time", - "Magadan Standard Time", - "Mauritius Standard Time", - "Middle East Standard Time", - "Montevideo Standard Time", - "Morocco Standard Time", - "Mountain Standard Time (Mexico)", - "Mountain Standard Time", - "Myanmar Standard Time", - "N. Central Asia Standard Time", - "Namibia Standard Time", - "Nepal Standard Time", - "New Zealand Standard Time", - "Newfoundland Standard Time", - "North Asia East Standard Time", - "North Asia Standard Time", - "Pacific SA Standard Time", - "Pacific Standard Time (Mexico)", - "Pacific Standard Time", - "Pakistan Standard Time", - "Paraguay Standard Time", - "Romance Standard Time", - "Russia Time Zone 10", - "Russia Time Zone 11", - "Russia Time Zone 3", - "Russian Standard Time", - "SA Eastern Standard Time", - "SA Pacific Standard Time", - "SA Western Standard Time", - "Samoa Standard Time", - "SE Asia Standard Time", - "Singapore Standard Time", - "South Africa Standard Time", - "Sri Lanka Standard Time", - "Syria Standard Time", - "Taipei Standard Time", - "Tasmania Standard Time", - "Tokyo Standard Time", - "Tonga Standard Time", - "Turkey Standard Time", - "Ulaanbaatar Standard Time", - "US Eastern Standard Time", - "US Mountain Standard Time", - "UTC", - "UTC+12", - "UTC-02", - "UTC-11", - "Venezuela Standard Time", - "Vladivostok Standard Time", - "W. Australia Standard Time", - "W. Central Africa Standard Time", - "W. Europe Standard Time", - "West Asia Standard Time", - "West Pacific Standard Time", - "Yakutsk Standard Time" + "Windows 10", + "Windows 11", + "OUH Server 2019 Data Science VM" ] - } }, - "required": [ - "shutdown_time", - "shutdown_timezone" - ] - } - }, - { - "if": { - "properties": { - "assign_to_another_user": { - "const": true - } + "admin_username": { + "type": "string", + "title": "Admin username", + "description": "Overide automatic admin username generation.", + "default": "" }, - "required": [ - "assign_to_another_user" - ] - }, - "then": { - "properties": { - "owner_id": { + "vm_size": { + "$id": "#/properties/vm_size", "type": "string", - "title": "Owner ID", - "description": "Enter the Object ID of the user you want to assign this VM to.", + "title": "VM Size", + "description": "Select the size of VM for your workload. VMs can only be resized within the same series (e.g. Dsv5 to Dsv5); resizing across series is not supported. GPU quota is shared across all workspaces on the platform — deploying a GPU VM that is not actively in use consumes quota that may be needed by other researchers. Quota is only released when a VM is deleted, not when it is stopped.", + "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", + "updateable": true, + "oneOf": [ + { + "const": "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", + "title": "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", + "description": "Very low cost. Suitable for text editing, document review, and light portal use only. Not suitable for data analysis or scripting." + }, + { + "const": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", + "title": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", + "description": "Good starting point for general research workloads. Suitable for R and Python scripting, data exploration, and typical analysis tasks." + }, + { + "const": "Fas Series | 2 CPU | 8GB RAM | £0.20/ hour", + "title": "Fas Series | 2 CPU | 8GB RAM | £0.20/ hour", + "description": "Compute-optimised (AMD EPYC, 4th Gen). Each vCPU is a full physical core with no hyperthreading. Suited to parallelised or CPU-bound workloads." + }, + { + "const": "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "title": "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "description": "General purpose with AMD processor. Good balance of CPU and memory for mid-sized analysis workloads." + }, + { + "const": "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", + "title": "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", + "description": "Compute-optimised. Lower memory ratio than D-series; suited to CPU-intensive tasks where memory is not the constraint." + }, + { + "const": "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "title": "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "description": "General purpose. Good all-round choice for R and Python workloads with moderate memory requirements." + }, + { + "const": "Fas Series | 4 CPU | 16GB RAM | £0.40/ hour", + "title": "Fas Series | 4 CPU | 16GB RAM | £0.40/ hour", + "description": "Compute-optimised (AMD EPYC, 4th Gen). Each vCPU is a full physical core with no hyperthreading. Suited to parallelised or CPU-bound workloads." + }, + { + "const": "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", + "title": "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", + "description": "Compute-optimised. Lower memory ratio than D-series; suited to CPU-intensive tasks where memory is not the constraint." + }, + { + "const": "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", + "title": "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", + "description": "General purpose. Suitable for larger datasets and memory-intensive analysis. A good step up when 4 CPU / 16GB is insufficient." + }, + { + "const": "Fas Series | 8 CPU | 32GB RAM | £0.75/ hour", + "title": "Fas Series | 8 CPU | 32GB RAM | £0.75/ hour", + "description": "Compute-optimised (AMD EPYC, 4th Gen). Each vCPU is a full physical core with no hyperthreading. Suited to parallelised or CPU-bound workloads." + }, + { + "const": "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", + "title": "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", + "description": "Memory-optimised. High memory-to-CPU ratio. Suited to in-memory operations, large dataframes, or workloads that require holding substantial data in RAM." + }, + { + "const": "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", + "title": "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", + "description": "Compute-optimised. Lower memory ratio than D-series; suited to CPU-intensive tasks where memory is not the constraint." + }, + { + "const": "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", + "title": "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", + "description": "General purpose, large. Suitable for parallelised analysis, large model fitting, or workloads requiring both high CPU and substantial memory." + }, + { + "const": "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", + "title": "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", + "description": "Memory-optimised, large. High memory-to-CPU ratio. Suited to in-memory operations, large dataframes, or workloads that require holding substantial data in RAM." + }, + { + "const": "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", + "title": "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", + "description": "Entry-level GPU (NVIDIA A10, 4GB VRAM). Suitable for GPU-accelerated visualisation and light inference. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." + }, + { + "const": "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", + "title": "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", + "description": "Mid-range GPU partition (NVIDIA A10, 8GB VRAM). Suitable for GPU-accelerated inference and visualisation workloads. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." + }, + { + "const": "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", + "title": "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", + "description": "Half A10 GPU (NVIDIA A10, 12GB VRAM). Suitable for more demanding inference or visualisation workloads. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." + }, + { + "const": "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", + "title": "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", + "description": "Full A10 GPU (NVIDIA A10, 24GB VRAM). Suitable for GPU-accelerated ML inference and visualisation. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." + }, + { + "const": "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", + "title": "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", + "description": "Dual A10 GPU (2× NVIDIA A10, 48GB VRAM total). For workloads requiring maximum A10 GPU capacity. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." + }, + { + "const": "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", + "title": "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", + "description": "H100 GPU (NVIDIA H100 NVL, 94GB VRAM). For large model training and high-throughput GPU workloads. H100 quota is extremely limited and shared across all workspaces. Quota is only released when a VM is deleted — please delete this VM as soon as your work is complete." + }, + { + "const": "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour", + "title": "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour", + "description": "Dual H100 GPU (2× NVIDIA H100 NVL, 188GB VRAM total). For the largest model training workloads requiring maximum GPU capacity. H100 quota is extremely limited and shared across all workspaces. Quota is only released when a VM is deleted — please delete this VM as soon as your work is complete." + } + ] + }, + "shared_storage_access": { + "$id": "#/properties/shared_storage_access", + "type": "boolean", + "title": "Shared storage", + "default": true, + "description": "Enable access to shared storage" + }, + "enable_shutdown_schedule": { + "$id": "#/properties/enable_shutdown_schedule", + "type": "boolean", + "title": "Enable Shutdown Schedule", + "default": false, + "description": "Enable automatic shutdown schedule for the VM" + }, + "assign_to_another_user": { + "type": "boolean", + "title": "Assign this VM to another user", + "description": "Check this box if you want to assign this VM to another user.", "default": false, "updateable": false - } + } + }, + "allOf": [ + { + "if": { + "properties": { + "enable_shutdown_schedule": { + "const": true + } + }, + "required": [ + "enable_shutdown_schedule" + ] + }, + "then": { + "properties": { + "shutdown_time": { + "type": "string", + "title": "Shutdown Time", + "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", + "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", + "default": "1800" + }, + "shutdown_timezone": { + "type": "string", + "title": "Shutdown Timezone", + "description": "Timezone for the shutdown schedule", + "default": "UTC", + "enum": [ + "Afghanistan Standard Time", + "Alaskan Standard Time", + "Arab Standard Time", + "Arabian Standard Time", + "Arabic Standard Time", + "Argentina Standard Time", + "Atlantic Standard Time", + "AUS Central Standard Time", + "AUS Eastern Standard Time", + "Azerbaijan Standard Time", + "Azores Standard Time", + "Bahia Standard Time", + "Bangladesh Standard Time", + "Belarus Standard Time", + "Canada Central Standard Time", + "Cape Verde Standard Time", + "Caucasus Standard Time", + "Cen. Australia Standard Time", + "Central America Standard Time", + "Central Asia Standard Time", + "Central Brazilian Standard Time", + "Central Europe Standard Time", + "Central European Standard Time", + "Central Pacific Standard Time", + "Central Standard Time (Mexico)", + "Central Standard Time", + "China Standard Time", + "Dateline Standard Time", + "E. Africa Standard Time", + "E. Australia Standard Time", + "E. Europe Standard Time", + "E. South America Standard Time", + "Eastern Standard Time (Mexico)", + "Eastern Standard Time", + "Egypt Standard Time", + "Ekaterinburg Standard Time", + "Fiji Standard Time", + "FLE Standard Time", + "Georgian Standard Time", + "GMT Standard Time", + "Greenland Standard Time", + "Greenwich Standard Time", + "GTB Standard Time", + "Hawaiian Standard Time", + "India Standard Time", + "Iran Standard Time", + "Israel Standard Time", + "Jordan Standard Time", + "Kaliningrad Standard Time", + "Korea Standard Time", + "Libya Standard Time", + "Line Islands Standard Time", + "Magadan Standard Time", + "Mauritius Standard Time", + "Middle East Standard Time", + "Montevideo Standard Time", + "Morocco Standard Time", + "Mountain Standard Time (Mexico)", + "Mountain Standard Time", + "Myanmar Standard Time", + "N. Central Asia Standard Time", + "Namibia Standard Time", + "Nepal Standard Time", + "New Zealand Standard Time", + "Newfoundland Standard Time", + "North Asia East Standard Time", + "North Asia Standard Time", + "Pacific SA Standard Time", + "Pacific Standard Time (Mexico)", + "Pacific Standard Time", + "Pakistan Standard Time", + "Paraguay Standard Time", + "Romance Standard Time", + "Russia Time Zone 10", + "Russia Time Zone 11", + "Russia Time Zone 3", + "Russian Standard Time", + "SA Eastern Standard Time", + "SA Pacific Standard Time", + "SA Western Standard Time", + "Samoa Standard Time", + "SE Asia Standard Time", + "Singapore Standard Time", + "South Africa Standard Time", + "Sri Lanka Standard Time", + "Syria Standard Time", + "Taipei Standard Time", + "Tasmania Standard Time", + "Tokyo Standard Time", + "Tonga Standard Time", + "Turkey Standard Time", + "Ulaanbaatar Standard Time", + "US Eastern Standard Time", + "US Mountain Standard Time", + "UTC", + "UTC+12", + "UTC-02", + "UTC-11", + "Venezuela Standard Time", + "Vladivostok Standard Time", + "W. Australia Standard Time", + "W. Central Africa Standard Time", + "W. Europe Standard Time", + "West Asia Standard Time", + "West Pacific Standard Time", + "Yakutsk Standard Time" + ] + } + }, + "required": [ + "shutdown_time", + "shutdown_timezone" + ] + } }, - "required": [ - "owner_id" - ] - } - } - ], - "uiSchema": { - "admin_username": { - "classNames": "tre-hidden" + { + "if": { + "properties": { + "assign_to_another_user": { + "const": true + } + }, + "required": [ + "assign_to_another_user" + ] + }, + "then": { + "properties": { + "owner_id": { + "type": "string", + "title": "Owner ID", + "description": "Enter the Object ID of the user you want to assign this VM to.", + "default": false, + "updateable": false + } + }, + "required": [ + "owner_id" + ] + } + } + ], + "uiSchema": { + "admin_username": { + "classNames": "tre-hidden" + } } - } -} +} \ No newline at end of file From 0a4ec6528cfe359a79099b16934cbf9ca1f767c3 Mon Sep 17 00:00:00 2001 From: Jaimie Date: Fri, 19 Jun 2026 15:32:22 +0100 Subject: [PATCH 3/8] Update VM sizes based on OS requirements --- .../guacamole-azure-linuxvm-ouh2/porter.yaml | 23 +- .../template_schema.json | 521 +++++++++--------- .../porter.yaml | 23 +- .../template_schema.json | 128 +---- 4 files changed, 309 insertions(+), 386 deletions(-) diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml index 30fe43b..583cf19 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml @@ -9,28 +9,31 @@ registry: azuretre custom: # For information on vm_sizes and image_options, see README.me in the guacamole/user-resources folder vm_sizes: - # CPU-only VMs (ordered by price) "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour": Standard_B2s + # CPU-only VMs - Dsv5 Series (Intel, ordered by size) "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour": Standard_D2s_v5 - "Fas Series | 2 CPU | 8GB RAM | £0.10/ hour": Standard_F2as_v6 + "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour": Standard_D4s_v5 + "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour": Standard_D8s_v5 + "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour": Standard_D16s_v5 + # CPU-only VMs - Das_v5 Series (AMD, ordered by size) "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour": Standard_D4as_v5 - "Fas Series | 4 CPU | 16GB RAM | £0.25/ hour": Standard_F4as_v6 + "Das_v5 Series | 8 CPU | 32GB RAM | £0.30/ hour": Standard_D8as_v5 + "Das_v5 Series | 16 CPU | 64GB RAM | £0.60/ hour": Standard_D16as_v5 + "Das_v5 Series | 32 CPU | 128GB RAM | £1.20/ hour": Standard_D32as_v5 + # CPU-only VMs - Fs_v2 Series (compute-optimised, ordered by size) "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour": Standard_F4s_v2 - "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour": Standard_D4s_v5 "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour": Standard_F8s_v2 - "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour": Standard_D8s_v5 - "Fas Series | 8 CPU | 32GB RAM | £0.50/ hour": Standard_F8as_v6 - "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour": Standard_E8as_v4 "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour": Standard_F16s_v2 - "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour": Standard_D16s_v5 + # CPU-only VMs - Easv4 Series (memory-optimised, ordered by size) + "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour": Standard_E8as_v4 "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour": Standard_E16as_v4 - # GPU VMs - A10 Series (ordered by price) + # GPU VMs - A10 Series (ordered by size) "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour": Standard_NV6ads_A10_v5 "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour": Standard_NV12ads_A10_v5 "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour": Standard_NV18ads_A10_v5 "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £3.00/ hour": Standard_NV36ads_A10_v5 "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £6.15/ hour": Standard_NV72ads_A10_v5 - # GPU VMs - H100 Series (ordered by price) + # GPU VMs - H100 Series (ordered by size) "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £6.55/ hour": Standard_NC40ads_H100_v5 "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £13.15/ hour": Standard_NC80adis_H100_v5 image_options: diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json index f6b379b..4a9b68c 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json @@ -1,273 +1,274 @@ { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json", - "type": "object", - "title": "Linux Virtual Machine", - "description": "Linux virtual machine", - "required": [ - "os_image", - "vm_size" - ], - "authorizedRoles": [ - "WorkspaceOwner", "WorkspaceResearcher" - ], - "properties": { - "display_name": { - "type": "string", - "title": "Display name for the VM", - "description": "The display name of the VM.", - "default": "My Linux VM", - "updateable": true - }, - "description": { - "type": "string", - "title": "Description of the VM", - "description": "Describe what this VM is used for.", - "default": "I will use this VM for research.", - "updateable": true - }, - "os_image": { - "$id": "#/properties/os_image", - "type": "string", - "title": "Linux image", - "description": "Select Linux image to use for VM", - "default": "OUH Ubuntu 22.04 Data Science VM", - "enum": [ - "Ubuntu 22.04 LTS", - "OUH Ubuntu 22.04 Data Science VM" - ] - }, - "admin_username": { - "type": "string", - "title": "Admin username", - "description": "Overide automatic admin username generation.", - "default": "" - }, - "vm_size": { - "$id": "#/properties/vm_size", - "type": "string", - "title": "VM Size", - "description": "Select size of VM. VMs can only be resized within the same series (e.g., Dsv5 → Dsv5). Resizing across different series is not supported. GPU VMs should only be deployed when actively needed due to limited quota. H100 quota is especially limited - deploy only for essential workloads and limited periods.", - "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", - "enum": [ - "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", - "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", - "Fas Series | 2 CPU | 8GB RAM | £0.10/ hour", - "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour", - "Fas Series | 4 CPU | 16GB RAM | £0.25/ hour", - "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", - "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour", - "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour", - "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour", - "Fas Series | 8 CPU | 32GB RAM | £0.50/ hour", - "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour", - "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", - "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour", - "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour", - "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour", - "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour", - "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour", - "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £3.00/ hour", - "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £6.15/ hour", - "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £6.55/ hour", - "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £13.15/ hour" - ], - "updateable": true - }, - "shared_storage_access": { - "$id": "#/properties/shared_storage_access", - "type": "boolean", - "title": "Shared storage", - "default": true, - "description": "Enable access to shared storage" - }, - "enable_shutdown_schedule": { - "$id": "#/properties/enable_shutdown_schedule", - "type": "boolean", - "title": "Enable Shutdown Schedule", - "default": false, - "description": "Enable automatic shutdown schedule for the VM" - }, - "assign_to_another_user": { - "type": "boolean", - "title": "Assign this VM to another user", - "description": "Check this box if you want to assign this VM to another user.", - "default": false, - "updateable": false - } - }, - "allOf": [ - { - "if": { - "properties": { - "enable_shutdown_schedule": { - "const": true - } + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json", + "type": "object", + "title": "Linux Virtual Machine", + "description": "Linux virtual machine", + "required": [ + "os_image", + "vm_size" + ], + "authorizedRoles": [ + "WorkspaceOwner", + "WorkspaceResearcher" + ], + "properties": { + "display_name": { + "type": "string", + "title": "Display name for the VM", + "description": "The display name of the VM.", + "default": "My Linux VM", + "updateable": true }, - "required": [ - "enable_shutdown_schedule" - ] - }, - "then": { - "properties": { - "shutdown_time": { + "description": { "type": "string", - "title": "Shutdown Time", - "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", - "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", - "default": "1800" - }, - "shutdown_timezone": { + "title": "Description of the VM", + "description": "Describe what this VM is used for.", + "default": "I will use this VM for research.", + "updateable": true + }, + "os_image": { + "$id": "#/properties/os_image", "type": "string", - "title": "Shutdown Timezone", - "description": "Timezone for the shutdown schedule", - "default": "UTC", + "title": "Linux image", + "description": "Select Linux image to use for VM", + "default": "OUH Ubuntu 22.04 Data Science VM", "enum": [ - "Afghanistan Standard Time", - "Alaskan Standard Time", - "Arab Standard Time", - "Arabian Standard Time", - "Arabic Standard Time", - "Argentina Standard Time", - "Atlantic Standard Time", - "AUS Central Standard Time", - "AUS Eastern Standard Time", - "Azerbaijan Standard Time", - "Azores Standard Time", - "Bahia Standard Time", - "Bangladesh Standard Time", - "Belarus Standard Time", - "Canada Central Standard Time", - "Cape Verde Standard Time", - "Caucasus Standard Time", - "Cen. Australia Standard Time", - "Central America Standard Time", - "Central Asia Standard Time", - "Central Brazilian Standard Time", - "Central Europe Standard Time", - "Central European Standard Time", - "Central Pacific Standard Time", - "Central Standard Time (Mexico)", - "Central Standard Time", - "China Standard Time", - "Dateline Standard Time", - "E. Africa Standard Time", - "E. Australia Standard Time", - "E. Europe Standard Time", - "E. South America Standard Time", - "Eastern Standard Time (Mexico)", - "Eastern Standard Time", - "Egypt Standard Time", - "Ekaterinburg Standard Time", - "Fiji Standard Time", - "FLE Standard Time", - "Georgian Standard Time", - "GMT Standard Time", - "Greenland Standard Time", - "Greenwich Standard Time", - "GTB Standard Time", - "Hawaiian Standard Time", - "India Standard Time", - "Iran Standard Time", - "Israel Standard Time", - "Jordan Standard Time", - "Kaliningrad Standard Time", - "Korea Standard Time", - "Libya Standard Time", - "Line Islands Standard Time", - "Magadan Standard Time", - "Mauritius Standard Time", - "Middle East Standard Time", - "Montevideo Standard Time", - "Morocco Standard Time", - "Mountain Standard Time (Mexico)", - "Mountain Standard Time", - "Myanmar Standard Time", - "N. Central Asia Standard Time", - "Namibia Standard Time", - "Nepal Standard Time", - "New Zealand Standard Time", - "Newfoundland Standard Time", - "North Asia East Standard Time", - "North Asia Standard Time", - "Pacific SA Standard Time", - "Pacific Standard Time (Mexico)", - "Pacific Standard Time", - "Pakistan Standard Time", - "Paraguay Standard Time", - "Romance Standard Time", - "Russia Time Zone 10", - "Russia Time Zone 11", - "Russia Time Zone 3", - "Russian Standard Time", - "SA Eastern Standard Time", - "SA Pacific Standard Time", - "SA Western Standard Time", - "Samoa Standard Time", - "SE Asia Standard Time", - "Singapore Standard Time", - "South Africa Standard Time", - "Sri Lanka Standard Time", - "Syria Standard Time", - "Taipei Standard Time", - "Tasmania Standard Time", - "Tokyo Standard Time", - "Tonga Standard Time", - "Turkey Standard Time", - "Ulaanbaatar Standard Time", - "US Eastern Standard Time", - "US Mountain Standard Time", - "UTC", - "UTC+12", - "UTC-02", - "UTC-11", - "Venezuela Standard Time", - "Vladivostok Standard Time", - "W. Australia Standard Time", - "W. Central Africa Standard Time", - "W. Europe Standard Time", - "West Asia Standard Time", - "West Pacific Standard Time", - "Yakutsk Standard Time" + "Ubuntu 22.04 LTS", + "OUH Ubuntu 22.04 Data Science VM" ] - } }, - "required": [ - "shutdown_time", - "shutdown_timezone" - ] - } - }, - { - "if": { - "properties": { - "assign_to_another_user": { - "const": true - } + "admin_username": { + "type": "string", + "title": "Admin username", + "description": "Overide automatic admin username generation.", + "default": "" }, - "required": [ - "assign_to_another_user" - ] - }, - "then": { - "properties": { - "owner_id": { + "vm_size": { + "$id": "#/properties/vm_size", "type": "string", - "title": "Owner ID", - "description": "Enter the Object ID of the user you want to assign this VM to.", + "title": "VM Size", + "description": "Select the size of VM for your workload. VMs can only be resized within the same series (e.g. Dsv5 to Dsv5); resizing across series is not supported. GPU quota is shared across all workspaces on the platform — deploying a GPU VM that is not actively in use consumes quota that may be needed by other researchers. Quota is only released when a VM is deleted, not when it is stopped.", + "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", + "updateable": true, + "enum": [ + "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", + "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", + "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour", + "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour", + "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour", + "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour", + "Das_v5 Series | 8 CPU | 32GB RAM | £0.30/ hour", + "Das_v5 Series | 16 CPU | 64GB RAM | £0.60/ hour", + "Das_v5 Series | 32 CPU | 128GB RAM | £1.20/ hour", + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour", + "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", + "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour", + "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour", + "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour", + "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour", + "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour", + "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £3.00/ hour", + "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £6.15/ hour", + "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £6.55/ hour", + "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £13.15/ hour" + ] + }, + "shared_storage_access": { + "$id": "#/properties/shared_storage_access", + "type": "boolean", + "title": "Shared storage", + "default": true, + "description": "Enable access to shared storage" + }, + "enable_shutdown_schedule": { + "$id": "#/properties/enable_shutdown_schedule", + "type": "boolean", + "title": "Enable Shutdown Schedule", + "default": false, + "description": "Enable automatic shutdown schedule for the VM" + }, + "assign_to_another_user": { + "type": "boolean", + "title": "Assign this VM to another user", + "description": "Check this box if you want to assign this VM to another user.", "default": false, "updateable": false - } + } + }, + "allOf": [ + { + "if": { + "properties": { + "enable_shutdown_schedule": { + "const": true + } + }, + "required": [ + "enable_shutdown_schedule" + ] + }, + "then": { + "properties": { + "shutdown_time": { + "type": "string", + "title": "Shutdown Time", + "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", + "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", + "default": "1800" + }, + "shutdown_timezone": { + "type": "string", + "title": "Shutdown Timezone", + "description": "Timezone for the shutdown schedule", + "default": "UTC", + "enum": [ + "Afghanistan Standard Time", + "Alaskan Standard Time", + "Arab Standard Time", + "Arabian Standard Time", + "Arabic Standard Time", + "Argentina Standard Time", + "Atlantic Standard Time", + "AUS Central Standard Time", + "AUS Eastern Standard Time", + "Azerbaijan Standard Time", + "Azores Standard Time", + "Bahia Standard Time", + "Bangladesh Standard Time", + "Belarus Standard Time", + "Canada Central Standard Time", + "Cape Verde Standard Time", + "Caucasus Standard Time", + "Cen. Australia Standard Time", + "Central America Standard Time", + "Central Asia Standard Time", + "Central Brazilian Standard Time", + "Central Europe Standard Time", + "Central European Standard Time", + "Central Pacific Standard Time", + "Central Standard Time (Mexico)", + "Central Standard Time", + "China Standard Time", + "Dateline Standard Time", + "E. Africa Standard Time", + "E. Australia Standard Time", + "E. Europe Standard Time", + "E. South America Standard Time", + "Eastern Standard Time (Mexico)", + "Eastern Standard Time", + "Egypt Standard Time", + "Ekaterinburg Standard Time", + "Fiji Standard Time", + "FLE Standard Time", + "Georgian Standard Time", + "GMT Standard Time", + "Greenland Standard Time", + "Greenwich Standard Time", + "GTB Standard Time", + "Hawaiian Standard Time", + "India Standard Time", + "Iran Standard Time", + "Israel Standard Time", + "Jordan Standard Time", + "Kaliningrad Standard Time", + "Korea Standard Time", + "Libya Standard Time", + "Line Islands Standard Time", + "Magadan Standard Time", + "Mauritius Standard Time", + "Middle East Standard Time", + "Montevideo Standard Time", + "Morocco Standard Time", + "Mountain Standard Time (Mexico)", + "Mountain Standard Time", + "Myanmar Standard Time", + "N. Central Asia Standard Time", + "Namibia Standard Time", + "Nepal Standard Time", + "New Zealand Standard Time", + "Newfoundland Standard Time", + "North Asia East Standard Time", + "North Asia Standard Time", + "Pacific SA Standard Time", + "Pacific Standard Time (Mexico)", + "Pacific Standard Time", + "Pakistan Standard Time", + "Paraguay Standard Time", + "Romance Standard Time", + "Russia Time Zone 10", + "Russia Time Zone 11", + "Russia Time Zone 3", + "Russian Standard Time", + "SA Eastern Standard Time", + "SA Pacific Standard Time", + "SA Western Standard Time", + "Samoa Standard Time", + "SE Asia Standard Time", + "Singapore Standard Time", + "South Africa Standard Time", + "Sri Lanka Standard Time", + "Syria Standard Time", + "Taipei Standard Time", + "Tasmania Standard Time", + "Tokyo Standard Time", + "Tonga Standard Time", + "Turkey Standard Time", + "Ulaanbaatar Standard Time", + "US Eastern Standard Time", + "US Mountain Standard Time", + "UTC", + "UTC+12", + "UTC-02", + "UTC-11", + "Venezuela Standard Time", + "Vladivostok Standard Time", + "W. Australia Standard Time", + "W. Central Africa Standard Time", + "W. Europe Standard Time", + "West Asia Standard Time", + "West Pacific Standard Time", + "Yakutsk Standard Time" + ] + } + }, + "required": [ + "shutdown_time", + "shutdown_timezone" + ] + } }, - "required": [ - "owner_id" - ] - } - } - ], - "uiSchema": { - "admin_username": { - "classNames": "tre-hidden" + { + "if": { + "properties": { + "assign_to_another_user": { + "const": true + } + }, + "required": [ + "assign_to_another_user" + ] + }, + "then": { + "properties": { + "owner_id": { + "type": "string", + "title": "Owner ID", + "description": "Enter the Object ID of the user you want to assign this VM to.", + "default": false, + "updateable": false + } + }, + "required": [ + "owner_id" + ] + } + } + ], + "uiSchema": { + "admin_username": { + "classNames": "tre-hidden" + } } - } -} +} \ No newline at end of file diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml index de4789c..dcb0f08 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml @@ -9,28 +9,31 @@ registry: azuretre custom: # For information on vm_sizes and image_options, see README.me in the guacamole/user-resources folder vm_sizes: - # CPU-only VMs (ordered by price) "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour": Standard_B2s + # CPU-only VMs - Dsv5 Series (Intel, ordered by size) "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour": Standard_D2s_v5 - "Fas Series | 2 CPU | 8GB RAM | £0.20/ hour": Standard_F2as_v6 + "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour": Standard_D4s_v5 + "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour": Standard_D8s_v5 + "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour": Standard_D16s_v5 + # CPU-only VMs - Das_v5 Series (AMD, ordered by size) "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour": Standard_D4as_v5 - "Fas Series | 4 CPU | 16GB RAM | £0.40/ hour": Standard_F4as_v6 + "Das_v5 Series | 8 CPU | 32GB RAM | £0.60/ hour": Standard_D8as_v5 + "Das_v5 Series | 16 CPU | 64GB RAM | £1.20/ hour": Standard_D16as_v5 + "Das_v5 Series | 32 CPU | 128GB RAM | £2.40/ hour": Standard_D32as_v5 + # CPU-only VMs - Fs_v2 Series (compute-optimised, ordered by size) "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour": Standard_F4s_v2 - "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour": Standard_D4s_v5 "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour": Standard_F8s_v2 - "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour": Standard_D8s_v5 - "Fas Series | 8 CPU | 32GB RAM | £0.75/ hour": Standard_F8as_v6 - "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour": Standard_E8as_v4 "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour": Standard_F16s_v2 - "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour": Standard_D16s_v5 + # CPU-only VMs - Easv4 Series (memory-optimised, ordered by size) + "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour": Standard_E8as_v4 "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour": Standard_E16as_v4 - # GPU VMs - A10 Series (ordered by price) + # GPU VMs - A10 Series (ordered by size) "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour": Standard_NV6ads_A10_v5 "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour": Standard_NV12ads_A10_v5 "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour": Standard_NV18ads_A10_v5 "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour": Standard_NV36ads_A10_v5 "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour": Standard_NV72ads_A10_v5 - # GPU VMs - H100 Series (ordered by price) + # GPU VMs - H100 Series (ordered by size) "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour": Standard_NC40ads_H100_v5 "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour": Standard_NC80adis_H100_v5 image_options: diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json index 13b5ba4..84ea0fc 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json @@ -49,112 +49,28 @@ "description": "Select the size of VM for your workload. VMs can only be resized within the same series (e.g. Dsv5 to Dsv5); resizing across series is not supported. GPU quota is shared across all workspaces on the platform — deploying a GPU VM that is not actively in use consumes quota that may be needed by other researchers. Quota is only released when a VM is deleted, not when it is stopped.", "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", "updateable": true, - "oneOf": [ - { - "const": "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", - "title": "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", - "description": "Very low cost. Suitable for text editing, document review, and light portal use only. Not suitable for data analysis or scripting." - }, - { - "const": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", - "title": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", - "description": "Good starting point for general research workloads. Suitable for R and Python scripting, data exploration, and typical analysis tasks." - }, - { - "const": "Fas Series | 2 CPU | 8GB RAM | £0.20/ hour", - "title": "Fas Series | 2 CPU | 8GB RAM | £0.20/ hour", - "description": "Compute-optimised (AMD EPYC, 4th Gen). Each vCPU is a full physical core with no hyperthreading. Suited to parallelised or CPU-bound workloads." - }, - { - "const": "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "title": "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "description": "General purpose with AMD processor. Good balance of CPU and memory for mid-sized analysis workloads." - }, - { - "const": "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", - "title": "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", - "description": "Compute-optimised. Lower memory ratio than D-series; suited to CPU-intensive tasks where memory is not the constraint." - }, - { - "const": "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "title": "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "description": "General purpose. Good all-round choice for R and Python workloads with moderate memory requirements." - }, - { - "const": "Fas Series | 4 CPU | 16GB RAM | £0.40/ hour", - "title": "Fas Series | 4 CPU | 16GB RAM | £0.40/ hour", - "description": "Compute-optimised (AMD EPYC, 4th Gen). Each vCPU is a full physical core with no hyperthreading. Suited to parallelised or CPU-bound workloads." - }, - { - "const": "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", - "title": "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", - "description": "Compute-optimised. Lower memory ratio than D-series; suited to CPU-intensive tasks where memory is not the constraint." - }, - { - "const": "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", - "title": "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", - "description": "General purpose. Suitable for larger datasets and memory-intensive analysis. A good step up when 4 CPU / 16GB is insufficient." - }, - { - "const": "Fas Series | 8 CPU | 32GB RAM | £0.75/ hour", - "title": "Fas Series | 8 CPU | 32GB RAM | £0.75/ hour", - "description": "Compute-optimised (AMD EPYC, 4th Gen). Each vCPU is a full physical core with no hyperthreading. Suited to parallelised or CPU-bound workloads." - }, - { - "const": "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", - "title": "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", - "description": "Memory-optimised. High memory-to-CPU ratio. Suited to in-memory operations, large dataframes, or workloads that require holding substantial data in RAM." - }, - { - "const": "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", - "title": "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", - "description": "Compute-optimised. Lower memory ratio than D-series; suited to CPU-intensive tasks where memory is not the constraint." - }, - { - "const": "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", - "title": "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", - "description": "General purpose, large. Suitable for parallelised analysis, large model fitting, or workloads requiring both high CPU and substantial memory." - }, - { - "const": "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", - "title": "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", - "description": "Memory-optimised, large. High memory-to-CPU ratio. Suited to in-memory operations, large dataframes, or workloads that require holding substantial data in RAM." - }, - { - "const": "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", - "title": "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", - "description": "Entry-level GPU (NVIDIA A10, 4GB VRAM). Suitable for GPU-accelerated visualisation and light inference. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." - }, - { - "const": "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", - "title": "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", - "description": "Mid-range GPU partition (NVIDIA A10, 8GB VRAM). Suitable for GPU-accelerated inference and visualisation workloads. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." - }, - { - "const": "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", - "title": "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", - "description": "Half A10 GPU (NVIDIA A10, 12GB VRAM). Suitable for more demanding inference or visualisation workloads. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." - }, - { - "const": "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", - "title": "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", - "description": "Full A10 GPU (NVIDIA A10, 24GB VRAM). Suitable for GPU-accelerated ML inference and visualisation. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." - }, - { - "const": "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", - "title": "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", - "description": "Dual A10 GPU (2× NVIDIA A10, 48GB VRAM total). For workloads requiring maximum A10 GPU capacity. GPU quota is shared across all workspaces and is only released when a VM is deleted — please delete this VM when it is no longer actively in use." - }, - { - "const": "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", - "title": "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", - "description": "H100 GPU (NVIDIA H100 NVL, 94GB VRAM). For large model training and high-throughput GPU workloads. H100 quota is extremely limited and shared across all workspaces. Quota is only released when a VM is deleted — please delete this VM as soon as your work is complete." - }, - { - "const": "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour", - "title": "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour", - "description": "Dual H100 GPU (2× NVIDIA H100 NVL, 188GB VRAM total). For the largest model training workloads requiring maximum GPU capacity. H100 quota is extremely limited and shared across all workspaces. Quota is only released when a VM is deleted — please delete this VM as soon as your work is complete." - } + "enum": [ + "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", + "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", + "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", + "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", + "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "Das_v5 Series | 8 CPU | 32GB RAM | £0.60/ hour", + "Das_v5 Series | 16 CPU | 64GB RAM | £1.20/ hour", + "Das_v5 Series | 32 CPU | 128GB RAM | £2.40/ hour", + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", + "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", + "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", + "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", + "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", + "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", + "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", + "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", + "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", + "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", + "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour" ] }, "shared_storage_access": { From 6da9328aa470a3b9a485f9a07c61e8295081a067 Mon Sep 17 00:00:00 2001 From: Jaimie Date: Fri, 19 Jun 2026 16:14:08 +0100 Subject: [PATCH 4/8] Update porter bundle versions --- .../user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml | 2 +- .../user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml index 583cf19..325ef6d 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-linuxvm-ouh2 -version: 1.2.1 +version: 1.2.2 description: "An Azure TRE User Resource Template for Guacamole (Linux)" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml index dcb0f08..765d9fc 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-windowsvm-ouh2 -version: 1.2.0 +version: 1.2.1 description: "An Azure TRE User Resource Template for Guacamole (Windows)" dockerfile: Dockerfile.tmpl registry: azuretre From 619db504c97b7307b2aa9107ff2b27101cac5154 Mon Sep 17 00:00:00 2001 From: Jaimie Date: Mon, 22 Jun 2026 08:32:45 +0100 Subject: [PATCH 5/8] update readme --- templates/workspace_services/README.md | 54 +++++++++++++++----------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/templates/workspace_services/README.md b/templates/workspace_services/README.md index 549f8f0..fa7c982 100644 --- a/templates/workspace_services/README.md +++ b/templates/workspace_services/README.md @@ -9,28 +9,38 @@ Workspace Service Templates are located in this folder. We make use of our own c ## Available VM sizes -> Updates to be made - -| VM Size | vCPU | RAM (GB) | GPU | GPU Memory (GB) | Price/Hour | Azure SKU | -| ---------------------------------- | ---- | -------- | ---------- | --------------- | ---------- | ------------------------- | -| **CPU-Only VMs** | | | | | | | -| B-Series | 2 | 4 | None | - | £0.05 | Standard_B2s | -| Dsv5 Series | 2 | 8 | None | - | £0.15 | Standard_D2s_v5 | -| D4as_v5 Series | 4 | 16 | None | - | £0.30 | Standard_D4as_v5 | -| Dsv5 Series | 4 | 16 | None | - | £0.30 | Standard_D4s_v5 | -| F4s_v2 Series | 4 | 16 | None | - | £0.30 | Standard_F4s_v2 | -| Dsv5 Series | 8 | 32 | None | - | £0.65 | Standard_D8s_v5 | -| Easv4 Series | 8 | 64 | None | - | £0.75 | Standard_E8as_v4 | -| Dsv5 Series | 16 | 64 | None | - | £1.25 | Standard_D16s_v5 | -| **GPU VMs - A10 Series** | | | | | | | -| NV6ads_A10_v5 Series | 6 | 55 | 1/6 A10 | 4 | £0.61 | Standard_NV6ads_A10_v5 | -| NV12ads_A10_v5 Series | 12 | 110 | 1/3 A10 | 8 | £1.22 | Standard_NV12ads_A10_v5 | -| NV18ads_A10_v5 Series | 18 | 220 | 1/2 A10 | 12 | £2.05 | Standard_NV18ads_A10_v5 | -| NV36ads_A10_v5 Series | 36 | 440 | 1 A10 | 24 | £4.11 | Standard_NV36ads_A10_v5 | -| NV72ads_A10_v5 Series | 72 | 880 | 2 A10 | 48 | £8.60 | Standard_NV72ads_A10_v5 | -| **GPU VMs - H100 Series** | | | | | | | -| NC40ads_H100_v5 Series | 40 | 320 | 1 H100 NVL | 94 | £7.70 | Standard_NC40ads_H100_v5 | -| NC80adis_H100_v5 Series | 80 | 640 | 2 H100 NVL | 188 | £15.90 | Standard_NC80adis_H100_v5 | +| VM Size | vCPU | RAM (GB) | GPU | GPU Memory (GB) | Windows Price/hr | Linux Price/hr | Azure SKU | +| --- | --- | --- | --- | --- | --- | --- | --- | +| **CPU-Only — B-Series** | | | | | | | | +| B-Series | 2 | 4 | None | - | £0.05 | £0.05 | Standard_B2s | +| **CPU-Only — Dsv5 Series (Intel)** | | | | | | | | +| Dsv5 Series | 2 | 8 | None | - | £0.15 | £0.10 | Standard_D2s_v5 | +| Dsv5 Series | 4 | 16 | None | - | £0.30 | £0.20 | Standard_D4s_v5 | +| Dsv5 Series | 8 | 32 | None | - | £0.65 | £0.35 | Standard_D8s_v5 | +| Dsv5 Series | 16 | 64 | None | - | £1.25 | £0.65 | Standard_D16s_v5 | +| **CPU-Only — Das_v5 Series (AMD)** | | | | | | | | +| Das_v5 Series | 4 | 16 | None | - | £0.30 | £0.15 | Standard_D4as_v5 | +| Das_v5 Series | 8 | 32 | None | - | £0.60 | £0.30 | Standard_D8as_v5 | +| Das_v5 Series | 16 | 64 | None | - | £1.20 | £0.60 | Standard_D16as_v5 | +| Das_v5 Series | 32 | 128 | None | - | £2.40 | £1.20 | Standard_D32as_v5 | +| **CPU-Only — Fs_v2 Series (compute-optimised)** | | | | | | | | +| Fs_v2 Series | 4 | 8 | None | - | £0.30 | £0.15 | Standard_F4s_v2 | +| Fs_v2 Series | 8 | 16 | None | - | £0.60 | £0.30 | Standard_F8s_v2 | +| Fs_v2 Series | 16 | 32 | None | - | £1.15 | £0.60 | Standard_F16s_v2 | +| **CPU-Only — Easv4 Series (memory-optimised)** | | | | | | | | +| Easv4 Series | 8 | 64 | None | - | £0.75 | £0.45 | Standard_E8as_v4 | +| Easv4 Series | 16 | 128 | None | - | £1.50 | £0.90 | Standard_E16as_v4 | +| **GPU — A10 Series** | | | | | | | | +| NV6ads_A10_v5 Series | 6 | 55 | 1/6 A10 | 4 | £0.61 | £0.45 | Standard_NV6ads_A10_v5 | +| NV12ads_A10_v5 Series | 12 | 110 | 1/3 A10 | 8 | £1.22 | £0.85 | Standard_NV12ads_A10_v5 | +| NV18ads_A10_v5 Series | 18 | 220 | 1/2 A10 | 12 | £2.05 | £1.50 | Standard_NV18ads_A10_v5 | +| NV36ads_A10_v5 Series | 36 | 440 | 1× A10 | 24 | £4.11 | £3.00 | Standard_NV36ads_A10_v5 | +| NV72ads_A10_v5 Series | 72 | 880 | 2× A10 | 48 | £8.60 | £6.15 | Standard_NV72ads_A10_v5 | +| **GPU — H100 Series** | | | | | | | | +| NC40ads_H100_v5 Series | 40 | 320 | 1× H100 NVL | 94 | £7.70 | £6.55 | Standard_NC40ads_H100_v5 | +| NC80adis_H100_v5 Series | 80 | 640 | 2× H100 NVL | 188 | £15.90 | £13.15 | Standard_NC80adis_H100_v5 | + +Worth noting the original README only had a single price column — I've split it into Windows and Linux since the prices differ. You may want to update the table header in the doc to reflect that. ## Current VM Image options From b33a415d746a74583dab17a56e76c69794710b6c Mon Sep 17 00:00:00 2001 From: Jaimie Date: Mon, 22 Jun 2026 08:33:44 +0100 Subject: [PATCH 6/8] typo --- templates/workspace_services/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/templates/workspace_services/README.md b/templates/workspace_services/README.md index fa7c982..896c566 100644 --- a/templates/workspace_services/README.md +++ b/templates/workspace_services/README.md @@ -40,8 +40,6 @@ Workspace Service Templates are located in this folder. We make use of our own c | NC40ads_H100_v5 Series | 40 | 320 | 1× H100 NVL | 94 | £7.70 | £6.55 | Standard_NC40ads_H100_v5 | | NC80adis_H100_v5 Series | 80 | 640 | 2× H100 NVL | 188 | £15.90 | £13.15 | Standard_NC80adis_H100_v5 | -Worth noting the original README only had a single price column — I've split it into Windows and Linux since the prices differ. You may want to update the table header in the doc to reflect that. - ## Current VM Image options ### Windows From a7671f92269570fc12ceee08d819eb7e623ba5e3 Mon Sep 17 00:00:00 2001 From: Jaimie Date: Mon, 22 Jun 2026 08:50:56 +0100 Subject: [PATCH 7/8] Update to include T4 GPU --- templates/workspace_services/README.md | 7 +++++++ .../guacamole-azure-linuxvm-ouh2/porter.yaml | 5 ++++- .../guacamole-azure-linuxvm-ouh2/template_schema.json | 2 ++ .../guacamole-azure-windowsvm-ouh2/porter.yaml | 5 ++++- .../guacamole-azure-windowsvm-ouh2/template_schema.json | 2 ++ 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/templates/workspace_services/README.md b/templates/workspace_services/README.md index 896c566..fe6a5b4 100644 --- a/templates/workspace_services/README.md +++ b/templates/workspace_services/README.md @@ -9,6 +9,10 @@ Workspace Service Templates are located in this folder. We make use of our own c ## Available VM sizes +That works fine then — researcher airlocks in the drivers they need for their specific GPU. No image changes required, and it's consistent with how you already handle CUDA wheels for A10. + +That removes the main blocker. You should be good to add the T4 sizes to the bundle. Here's the updated readme table: + | VM Size | vCPU | RAM (GB) | GPU | GPU Memory (GB) | Windows Price/hr | Linux Price/hr | Azure SKU | | --- | --- | --- | --- | --- | --- | --- | --- | | **CPU-Only — B-Series** | | | | | | | | @@ -30,6 +34,9 @@ Workspace Service Templates are located in this folder. We make use of our own c | **CPU-Only — Easv4 Series (memory-optimised)** | | | | | | | | | Easv4 Series | 8 | 64 | None | - | £0.75 | £0.45 | Standard_E8as_v4 | | Easv4 Series | 16 | 128 | None | - | £1.50 | £0.90 | Standard_E16as_v4 | +| **GPU — T4 Series** | | | | | | | | +| NCas_T4_v3 Series | 4 | 28 | 1× T4 | 16 | £0.60 | £0.50 | Standard_NC4as_T4_v3 | +| NCas_T4_v3 Series | 8 | 56 | 1× T4 | 16 | £1.00 | £0.70 | Standard_NC8as_T4_v3 | | **GPU — A10 Series** | | | | | | | | | NV6ads_A10_v5 Series | 6 | 55 | 1/6 A10 | 4 | £0.61 | £0.45 | Standard_NV6ads_A10_v5 | | NV12ads_A10_v5 Series | 12 | 110 | 1/3 A10 | 8 | £1.22 | £0.85 | Standard_NV12ads_A10_v5 | diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml index 325ef6d..a2cf93f 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-linuxvm-ouh2 -version: 1.2.2 +version: 1.2.3 description: "An Azure TRE User Resource Template for Guacamole (Linux)" dockerfile: Dockerfile.tmpl registry: azuretre @@ -27,6 +27,9 @@ custom: # CPU-only VMs - Easv4 Series (memory-optimised, ordered by size) "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour": Standard_E8as_v4 "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour": Standard_E16as_v4 + # GPU VMs - T4 Series (ordered by size) + "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.50/ hour": Standard_NC4as_T4_v3 + "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £0.70/ hour": Standard_NC8as_T4_v3 # GPU VMs - A10 Series (ordered by size) "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour": Standard_NV6ads_A10_v5 "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour": Standard_NV12ads_A10_v5 diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json index 4a9b68c..effd43b 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json @@ -66,6 +66,8 @@ "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour", "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour", + "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.50/ hour", + "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £0.70 / hour", "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour", "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour", "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour", diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml index 765d9fc..1463dc7 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-windowsvm-ouh2 -version: 1.2.1 +version: 1.2.2 description: "An Azure TRE User Resource Template for Guacamole (Windows)" dockerfile: Dockerfile.tmpl registry: azuretre @@ -27,6 +27,9 @@ custom: # CPU-only VMs - Easv4 Series (memory-optimised, ordered by size) "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour": Standard_E8as_v4 "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour": Standard_E16as_v4 + # GPU VMs - T4 Series (ordered by size) + "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.60/ hour": Standard_NC4as_T4_v3 + "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £1.00/ hour": Standard_NC8as_T4_v3 # GPU VMs - A10 Series (ordered by size) "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour": Standard_NV6ads_A10_v5 "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour": Standard_NV12ads_A10_v5 diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json index 84ea0fc..96c23ef 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json @@ -64,6 +64,8 @@ "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", + "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.60/ hour", + "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £1.00/ hour", "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", From d0aa2a4631ede7d485b6eba2bc81d5797dc5b6ca Mon Sep 17 00:00:00 2001 From: Jaimie Date: Mon, 22 Jun 2026 09:11:20 +0100 Subject: [PATCH 8/8] Fix template schema files --- .../template_schema.json | 523 +++++++++--------- .../template_schema.json | 505 ++++++++--------- 2 files changed, 514 insertions(+), 514 deletions(-) diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json index effd43b..6218cdb 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm-ouh2/template_schema.json @@ -1,276 +1,275 @@ { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json", - "type": "object", - "title": "Linux Virtual Machine", - "description": "Linux virtual machine", - "required": [ - "os_image", - "vm_size" - ], - "authorizedRoles": [ - "WorkspaceOwner", - "WorkspaceResearcher" - ], - "properties": { - "display_name": { - "type": "string", - "title": "Display name for the VM", - "description": "The display name of the VM.", - "default": "My Linux VM", - "updateable": true + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json", + "type": "object", + "title": "Linux Virtual Machine", + "description": "Linux virtual machine", + "required": [ + "os_image", + "vm_size" + ], + "authorizedRoles": [ + "WorkspaceOwner", "WorkspaceResearcher" + ], + "properties": { + "display_name": { + "type": "string", + "title": "Display name for the VM", + "description": "The display name of the VM.", + "default": "My Linux VM", + "updateable": true + }, + "description": { + "type": "string", + "title": "Description of the VM", + "description": "Describe what this VM is used for.", + "default": "I will use this VM for research.", + "updateable": true + }, + "os_image": { + "$id": "#/properties/os_image", + "type": "string", + "title": "Linux image", + "description": "Select Linux image to use for VM", + "default": "OUH Ubuntu 22.04 Data Science VM", + "enum": [ + "Ubuntu 22.04 LTS", + "OUH Ubuntu 22.04 Data Science VM" + ] + }, + "admin_username": { + "type": "string", + "title": "Admin username", + "description": "Overide automatic admin username generation.", + "default": "" + }, + "vm_size": { + "$id": "#/properties/vm_size", + "type": "string", + "title": "VM Size", + "description": "Select size of VM. VMs can only be resized within the same series (e.g., Dsv5 → Dsv5). Resizing across different series is not supported. GPU VMs should only be deployed when actively needed due to limited quota. H100 quota is especially limited - deploy only for essential workloads and limited periods.", + "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", + "enum": [ + "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", + "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", + "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour", + "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour", + "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour", + "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour", + "Das_v5 Series | 8 CPU | 32GB RAM | £0.30/ hour", + "Das_v5 Series | 16 CPU | 64GB RAM | £0.60/ hour", + "Das_v5 Series | 32 CPU | 128GB RAM | £1.20/ hour", + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour", + "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", + "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour", + "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour", + "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.50/ hour", + "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £0.70 / hour", + "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour", + "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour", + "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour", + "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £3.00/ hour", + "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £6.15/ hour", + "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £6.55/ hour", + "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £13.15/ hour" + ], + "updateable": true + }, + "shared_storage_access": { + "$id": "#/properties/shared_storage_access", + "type": "boolean", + "title": "Shared storage", + "default": true, + "description": "Enable access to shared storage" + }, + "enable_shutdown_schedule": { + "$id": "#/properties/enable_shutdown_schedule", + "type": "boolean", + "title": "Enable Shutdown Schedule", + "default": false, + "description": "Enable automatic shutdown schedule for the VM" + }, + "assign_to_another_user": { + "type": "boolean", + "title": "Assign this VM to another user", + "description": "Check this box if you want to assign this VM to another user.", + "default": false, + "updateable": false + } + }, + "allOf": [ + { + "if": { + "properties": { + "enable_shutdown_schedule": { + "const": true + } }, - "description": { + "required": [ + "enable_shutdown_schedule" + ] + }, + "then": { + "properties": { + "shutdown_time": { "type": "string", - "title": "Description of the VM", - "description": "Describe what this VM is used for.", - "default": "I will use this VM for research.", - "updateable": true - }, - "os_image": { - "$id": "#/properties/os_image", + "title": "Shutdown Time", + "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", + "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", + "default": "1800" + }, + "shutdown_timezone": { "type": "string", - "title": "Linux image", - "description": "Select Linux image to use for VM", - "default": "OUH Ubuntu 22.04 Data Science VM", + "title": "Shutdown Timezone", + "description": "Timezone for the shutdown schedule", + "default": "UTC", "enum": [ - "Ubuntu 22.04 LTS", - "OUH Ubuntu 22.04 Data Science VM" + "Afghanistan Standard Time", + "Alaskan Standard Time", + "Arab Standard Time", + "Arabian Standard Time", + "Arabic Standard Time", + "Argentina Standard Time", + "Atlantic Standard Time", + "AUS Central Standard Time", + "AUS Eastern Standard Time", + "Azerbaijan Standard Time", + "Azores Standard Time", + "Bahia Standard Time", + "Bangladesh Standard Time", + "Belarus Standard Time", + "Canada Central Standard Time", + "Cape Verde Standard Time", + "Caucasus Standard Time", + "Cen. Australia Standard Time", + "Central America Standard Time", + "Central Asia Standard Time", + "Central Brazilian Standard Time", + "Central Europe Standard Time", + "Central European Standard Time", + "Central Pacific Standard Time", + "Central Standard Time (Mexico)", + "Central Standard Time", + "China Standard Time", + "Dateline Standard Time", + "E. Africa Standard Time", + "E. Australia Standard Time", + "E. Europe Standard Time", + "E. South America Standard Time", + "Eastern Standard Time (Mexico)", + "Eastern Standard Time", + "Egypt Standard Time", + "Ekaterinburg Standard Time", + "Fiji Standard Time", + "FLE Standard Time", + "Georgian Standard Time", + "GMT Standard Time", + "Greenland Standard Time", + "Greenwich Standard Time", + "GTB Standard Time", + "Hawaiian Standard Time", + "India Standard Time", + "Iran Standard Time", + "Israel Standard Time", + "Jordan Standard Time", + "Kaliningrad Standard Time", + "Korea Standard Time", + "Libya Standard Time", + "Line Islands Standard Time", + "Magadan Standard Time", + "Mauritius Standard Time", + "Middle East Standard Time", + "Montevideo Standard Time", + "Morocco Standard Time", + "Mountain Standard Time (Mexico)", + "Mountain Standard Time", + "Myanmar Standard Time", + "N. Central Asia Standard Time", + "Namibia Standard Time", + "Nepal Standard Time", + "New Zealand Standard Time", + "Newfoundland Standard Time", + "North Asia East Standard Time", + "North Asia Standard Time", + "Pacific SA Standard Time", + "Pacific Standard Time (Mexico)", + "Pacific Standard Time", + "Pakistan Standard Time", + "Paraguay Standard Time", + "Romance Standard Time", + "Russia Time Zone 10", + "Russia Time Zone 11", + "Russia Time Zone 3", + "Russian Standard Time", + "SA Eastern Standard Time", + "SA Pacific Standard Time", + "SA Western Standard Time", + "Samoa Standard Time", + "SE Asia Standard Time", + "Singapore Standard Time", + "South Africa Standard Time", + "Sri Lanka Standard Time", + "Syria Standard Time", + "Taipei Standard Time", + "Tasmania Standard Time", + "Tokyo Standard Time", + "Tonga Standard Time", + "Turkey Standard Time", + "Ulaanbaatar Standard Time", + "US Eastern Standard Time", + "US Mountain Standard Time", + "UTC", + "UTC+12", + "UTC-02", + "UTC-11", + "Venezuela Standard Time", + "Vladivostok Standard Time", + "W. Australia Standard Time", + "W. Central Africa Standard Time", + "W. Europe Standard Time", + "West Asia Standard Time", + "West Pacific Standard Time", + "Yakutsk Standard Time" ] + } }, - "admin_username": { - "type": "string", - "title": "Admin username", - "description": "Overide automatic admin username generation.", - "default": "" + "required": [ + "shutdown_time", + "shutdown_timezone" + ] + } + }, + { + "if": { + "properties": { + "assign_to_another_user": { + "const": true + } }, - "vm_size": { - "$id": "#/properties/vm_size", + "required": [ + "assign_to_another_user" + ] + }, + "then": { + "properties": { + "owner_id": { "type": "string", - "title": "VM Size", - "description": "Select the size of VM for your workload. VMs can only be resized within the same series (e.g. Dsv5 to Dsv5); resizing across series is not supported. GPU quota is shared across all workspaces on the platform — deploying a GPU VM that is not actively in use consumes quota that may be needed by other researchers. Quota is only released when a VM is deleted, not when it is stopped.", - "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", - "updateable": true, - "enum": [ - "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", - "Dsv5 Series | 2 CPU | 8GB RAM | £0.10/ hour", - "Dsv5 Series | 4 CPU | 16GB RAM | £0.20/ hour", - "Dsv5 Series | 8 CPU | 32GB RAM | £0.35/ hour", - "Dsv5 Series | 16 CPU | 64GB RAM | £0.65/ hour", - "Das_v5 Series | 4 CPU | 16GB RAM | £0.15/ hour", - "Das_v5 Series | 8 CPU | 32GB RAM | £0.30/ hour", - "Das_v5 Series | 16 CPU | 64GB RAM | £0.60/ hour", - "Das_v5 Series | 32 CPU | 128GB RAM | £1.20/ hour", - "Fs_v2 Series | 4 CPU | 8GB RAM | £0.15/ hour", - "Fs_v2 Series | 8 CPU | 16GB RAM | £0.30/ hour", - "Fs_v2 Series | 16 CPU | 32GB RAM | £0.60/ hour", - "Easv4 Series | 8 CPU | 64GB RAM | £0.45/ hour", - "Easv4 Series | 16 CPU | 128GB RAM | £0.90/ hour", - "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.50/ hour", - "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £0.70 / hour", - "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.45/ hour", - "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £0.85/ hour", - "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £1.50/ hour", - "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £3.00/ hour", - "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £6.15/ hour", - "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £6.55/ hour", - "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £13.15/ hour" - ] - }, - "shared_storage_access": { - "$id": "#/properties/shared_storage_access", - "type": "boolean", - "title": "Shared storage", - "default": true, - "description": "Enable access to shared storage" - }, - "enable_shutdown_schedule": { - "$id": "#/properties/enable_shutdown_schedule", - "type": "boolean", - "title": "Enable Shutdown Schedule", - "default": false, - "description": "Enable automatic shutdown schedule for the VM" - }, - "assign_to_another_user": { - "type": "boolean", - "title": "Assign this VM to another user", - "description": "Check this box if you want to assign this VM to another user.", + "title": "Owner ID", + "description": "Enter the Object ID of the user you want to assign this VM to.", "default": false, "updateable": false - } - }, - "allOf": [ - { - "if": { - "properties": { - "enable_shutdown_schedule": { - "const": true - } - }, - "required": [ - "enable_shutdown_schedule" - ] - }, - "then": { - "properties": { - "shutdown_time": { - "type": "string", - "title": "Shutdown Time", - "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", - "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", - "default": "1800" - }, - "shutdown_timezone": { - "type": "string", - "title": "Shutdown Timezone", - "description": "Timezone for the shutdown schedule", - "default": "UTC", - "enum": [ - "Afghanistan Standard Time", - "Alaskan Standard Time", - "Arab Standard Time", - "Arabian Standard Time", - "Arabic Standard Time", - "Argentina Standard Time", - "Atlantic Standard Time", - "AUS Central Standard Time", - "AUS Eastern Standard Time", - "Azerbaijan Standard Time", - "Azores Standard Time", - "Bahia Standard Time", - "Bangladesh Standard Time", - "Belarus Standard Time", - "Canada Central Standard Time", - "Cape Verde Standard Time", - "Caucasus Standard Time", - "Cen. Australia Standard Time", - "Central America Standard Time", - "Central Asia Standard Time", - "Central Brazilian Standard Time", - "Central Europe Standard Time", - "Central European Standard Time", - "Central Pacific Standard Time", - "Central Standard Time (Mexico)", - "Central Standard Time", - "China Standard Time", - "Dateline Standard Time", - "E. Africa Standard Time", - "E. Australia Standard Time", - "E. Europe Standard Time", - "E. South America Standard Time", - "Eastern Standard Time (Mexico)", - "Eastern Standard Time", - "Egypt Standard Time", - "Ekaterinburg Standard Time", - "Fiji Standard Time", - "FLE Standard Time", - "Georgian Standard Time", - "GMT Standard Time", - "Greenland Standard Time", - "Greenwich Standard Time", - "GTB Standard Time", - "Hawaiian Standard Time", - "India Standard Time", - "Iran Standard Time", - "Israel Standard Time", - "Jordan Standard Time", - "Kaliningrad Standard Time", - "Korea Standard Time", - "Libya Standard Time", - "Line Islands Standard Time", - "Magadan Standard Time", - "Mauritius Standard Time", - "Middle East Standard Time", - "Montevideo Standard Time", - "Morocco Standard Time", - "Mountain Standard Time (Mexico)", - "Mountain Standard Time", - "Myanmar Standard Time", - "N. Central Asia Standard Time", - "Namibia Standard Time", - "Nepal Standard Time", - "New Zealand Standard Time", - "Newfoundland Standard Time", - "North Asia East Standard Time", - "North Asia Standard Time", - "Pacific SA Standard Time", - "Pacific Standard Time (Mexico)", - "Pacific Standard Time", - "Pakistan Standard Time", - "Paraguay Standard Time", - "Romance Standard Time", - "Russia Time Zone 10", - "Russia Time Zone 11", - "Russia Time Zone 3", - "Russian Standard Time", - "SA Eastern Standard Time", - "SA Pacific Standard Time", - "SA Western Standard Time", - "Samoa Standard Time", - "SE Asia Standard Time", - "Singapore Standard Time", - "South Africa Standard Time", - "Sri Lanka Standard Time", - "Syria Standard Time", - "Taipei Standard Time", - "Tasmania Standard Time", - "Tokyo Standard Time", - "Tonga Standard Time", - "Turkey Standard Time", - "Ulaanbaatar Standard Time", - "US Eastern Standard Time", - "US Mountain Standard Time", - "UTC", - "UTC+12", - "UTC-02", - "UTC-11", - "Venezuela Standard Time", - "Vladivostok Standard Time", - "W. Australia Standard Time", - "W. Central Africa Standard Time", - "W. Europe Standard Time", - "West Asia Standard Time", - "West Pacific Standard Time", - "Yakutsk Standard Time" - ] - } - }, - "required": [ - "shutdown_time", - "shutdown_timezone" - ] - } + } }, - { - "if": { - "properties": { - "assign_to_another_user": { - "const": true - } - }, - "required": [ - "assign_to_another_user" - ] - }, - "then": { - "properties": { - "owner_id": { - "type": "string", - "title": "Owner ID", - "description": "Enter the Object ID of the user you want to assign this VM to.", - "default": false, - "updateable": false - } - }, - "required": [ - "owner_id" - ] - } - } - ], - "uiSchema": { - "admin_username": { - "classNames": "tre-hidden" - } + "required": [ + "owner_id" + ] + } + } + ], + "uiSchema": { + "admin_username": { + "classNames": "tre-hidden" } + } } \ No newline at end of file diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json index 96c23ef..c46eb6e 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm-ouh2/template_schema.json @@ -4,271 +4,272 @@ "type": "object", "title": "Windows Virtual Machine", "description": "Windows virtual machine ", - "required": [], + "required": [ + ], "authorizedRoles": [ - "WorkspaceOwner", - "WorkspaceResearcher" + "WorkspaceOwner", + "WorkspaceResearcher" ], "properties": { - "display_name": { - "type": "string", - "title": "Display name for the VM", - "description": "The display name of the VM.", - "default": "My Windows VM", - "updateable": true + "display_name": { + "type": "string", + "title": "Display name for the VM", + "description": "The display name of the VM.", + "default": "My Windows VM", + "updateable": true + }, + "description": { + "type": "string", + "title": "Description of the VM", + "description": "Describe what this VM is used for.", + "default": "I will use this VM for research.", + "updateable": true + }, + "os_image": { + "$id": "#/properties/os_image", + "type": "string", + "title": "Windows image", + "description": "Select Windows image to use for VM. (OUH image will not work with the H100 GPU VMs at the moment.)", + "default": "OUH Server 2019 Data Science VM", + "enum": [ + "Windows 10", + "Windows 11", + "OUH Server 2019 Data Science VM" + ] + }, + "admin_username": { + "type": "string", + "title": "Admin username", + "description": "Overide automatic admin username generation.", + "default": "" + }, + "vm_size": { + "$id": "#/properties/vm_size", + "type": "string", + "title": "VM Size", + "description": "Select size of VM. VMs can only be resized within the same series (e.g., Dsv5 → Dsv5). Resizing across different series is not supported. GPU VMs should only be deployed when actively needed due to limited quota. H100 quota is especially limited - deploy only for essential workloads and limited periods.", + "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", + "enum": [ + "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", + "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", + "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", + "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", + "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", + "Das_v5 Series | 8 CPU | 32GB RAM | £0.60/ hour", + "Das_v5 Series | 16 CPU | 64GB RAM | £1.20/ hour", + "Das_v5 Series | 32 CPU | 128GB RAM | £2.40/ hour", + "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", + "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", + "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", + "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", + "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", + "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.60/ hour", + "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £1.00/ hour", + "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", + "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", + "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", + "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", + "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", + "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", + "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour" + ], + "updateable": true + }, + "shared_storage_access": { + "$id": "#/properties/shared_storage_access", + "type": "boolean", + "title": "Shared storage", + "default": true, + "description": "Enable access to shared storage" + }, + "enable_shutdown_schedule": { + "$id": "#/properties/enable_shutdown_schedule", + "type": "boolean", + "title": "Enable Shutdown Schedule", + "default": false, + "description": "Enable automatic shutdown schedule for the VM" + }, + "assign_to_another_user": { + "type": "boolean", + "title": "Assign this VM to another user", + "description": "Check this box if you want to assign this VM to another user.", + "default": false, + "updateable": false + } + }, + "allOf": [ + { + "if": { + "properties": { + "enable_shutdown_schedule": { + "const": true + } }, - "description": { + "required": [ + "enable_shutdown_schedule" + ] + }, + "then": { + "properties": { + "shutdown_time": { "type": "string", - "title": "Description of the VM", - "description": "Describe what this VM is used for.", - "default": "I will use this VM for research.", - "updateable": true - }, - "os_image": { - "$id": "#/properties/os_image", + "title": "Shutdown Time", + "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", + "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", + "default": "1800" + }, + "shutdown_timezone": { "type": "string", - "title": "Windows image", - "description": "Select Windows image to use for VM. (OUH image will not work with the H100 GPU VMs at the moment.)", - "default": "OUH Server 2019 Data Science VM", + "title": "Shutdown Timezone", + "description": "Timezone for the shutdown schedule", + "default": "UTC", "enum": [ - "Windows 10", - "Windows 11", - "OUH Server 2019 Data Science VM" + "Afghanistan Standard Time", + "Alaskan Standard Time", + "Arab Standard Time", + "Arabian Standard Time", + "Arabic Standard Time", + "Argentina Standard Time", + "Atlantic Standard Time", + "AUS Central Standard Time", + "AUS Eastern Standard Time", + "Azerbaijan Standard Time", + "Azores Standard Time", + "Bahia Standard Time", + "Bangladesh Standard Time", + "Belarus Standard Time", + "Canada Central Standard Time", + "Cape Verde Standard Time", + "Caucasus Standard Time", + "Cen. Australia Standard Time", + "Central America Standard Time", + "Central Asia Standard Time", + "Central Brazilian Standard Time", + "Central Europe Standard Time", + "Central European Standard Time", + "Central Pacific Standard Time", + "Central Standard Time (Mexico)", + "Central Standard Time", + "China Standard Time", + "Dateline Standard Time", + "E. Africa Standard Time", + "E. Australia Standard Time", + "E. Europe Standard Time", + "E. South America Standard Time", + "Eastern Standard Time (Mexico)", + "Eastern Standard Time", + "Egypt Standard Time", + "Ekaterinburg Standard Time", + "Fiji Standard Time", + "FLE Standard Time", + "Georgian Standard Time", + "GMT Standard Time", + "Greenland Standard Time", + "Greenwich Standard Time", + "GTB Standard Time", + "Hawaiian Standard Time", + "India Standard Time", + "Iran Standard Time", + "Israel Standard Time", + "Jordan Standard Time", + "Kaliningrad Standard Time", + "Korea Standard Time", + "Libya Standard Time", + "Line Islands Standard Time", + "Magadan Standard Time", + "Mauritius Standard Time", + "Middle East Standard Time", + "Montevideo Standard Time", + "Morocco Standard Time", + "Mountain Standard Time (Mexico)", + "Mountain Standard Time", + "Myanmar Standard Time", + "N. Central Asia Standard Time", + "Namibia Standard Time", + "Nepal Standard Time", + "New Zealand Standard Time", + "Newfoundland Standard Time", + "North Asia East Standard Time", + "North Asia Standard Time", + "Pacific SA Standard Time", + "Pacific Standard Time (Mexico)", + "Pacific Standard Time", + "Pakistan Standard Time", + "Paraguay Standard Time", + "Romance Standard Time", + "Russia Time Zone 10", + "Russia Time Zone 11", + "Russia Time Zone 3", + "Russian Standard Time", + "SA Eastern Standard Time", + "SA Pacific Standard Time", + "SA Western Standard Time", + "Samoa Standard Time", + "SE Asia Standard Time", + "Singapore Standard Time", + "South Africa Standard Time", + "Sri Lanka Standard Time", + "Syria Standard Time", + "Taipei Standard Time", + "Tasmania Standard Time", + "Tokyo Standard Time", + "Tonga Standard Time", + "Turkey Standard Time", + "Ulaanbaatar Standard Time", + "US Eastern Standard Time", + "US Mountain Standard Time", + "UTC", + "UTC+12", + "UTC-02", + "UTC-11", + "Venezuela Standard Time", + "Vladivostok Standard Time", + "W. Australia Standard Time", + "W. Central Africa Standard Time", + "W. Europe Standard Time", + "West Asia Standard Time", + "West Pacific Standard Time", + "Yakutsk Standard Time" ] + } }, - "admin_username": { - "type": "string", - "title": "Admin username", - "description": "Overide automatic admin username generation.", - "default": "" + "required": [ + "shutdown_time", + "shutdown_timezone" + ] + } + }, + { + "if": { + "properties": { + "assign_to_another_user": { + "const": true + } }, - "vm_size": { - "$id": "#/properties/vm_size", + "required": [ + "assign_to_another_user" + ] + }, + "then": { + "properties": { + "owner_id": { "type": "string", - "title": "VM Size", - "description": "Select the size of VM for your workload. VMs can only be resized within the same series (e.g. Dsv5 to Dsv5); resizing across series is not supported. GPU quota is shared across all workspaces on the platform — deploying a GPU VM that is not actively in use consumes quota that may be needed by other researchers. Quota is only released when a VM is deleted, not when it is stopped.", - "default": "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", - "updateable": true, - "enum": [ - "B-Series | 2 CPU | 4GB RAM | Text editing | £0.05/ hour", - "Dsv5 Series | 2 CPU | 8GB RAM | £0.15/ hour", - "Dsv5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "Dsv5 Series | 8 CPU | 32GB RAM | £0.65/ hour", - "Dsv5 Series | 16 CPU | 64GB RAM | £1.25/ hour", - "Das_v5 Series | 4 CPU | 16GB RAM | £0.30/ hour", - "Das_v5 Series | 8 CPU | 32GB RAM | £0.60/ hour", - "Das_v5 Series | 16 CPU | 64GB RAM | £1.20/ hour", - "Das_v5 Series | 32 CPU | 128GB RAM | £2.40/ hour", - "Fs_v2 Series | 4 CPU | 8GB RAM | £0.30/ hour", - "Fs_v2 Series | 8 CPU | 16GB RAM | £0.60/ hour", - "Fs_v2 Series | 16 CPU | 32GB RAM | £1.15/ hour", - "Easv4 Series | 8 CPU | 64GB RAM | £0.75/ hour", - "Easv4 Series | 16 CPU | 128GB RAM | £1.50/ hour", - "NCas_T4_v3 Series | 4 CPU 28GB RAM | 1 T4 GPU 16GB RAM | £0.60/ hour", - "NCas_T4_v3 Series | 8 CPU 56GB RAM | 1 T4 GPU 16GB RAM | £1.00/ hour", - "NV6ads_A10_v5 Series | 6 CPU 55GB RAM | 1/6 A10 GPU 4GB RAM | £0.61/ hour", - "NV12ads_A10_v5 Series | 12 CPU 110GB RAM | 1/3 A10 GPU 8GB RAM | £1.22/ hour", - "NV18ads_A10_v5 Series | 18 CPU 220GB RAM | 1/2 A10 GPU 12GB RAM | £2.05/ hour", - "NV36ads_A10_v5 Series | 36 CPU 440GB RAM | 1 A10 GPU 24GB RAM | £4.11/ hour", - "NV72ads_A10_v5 Series | 72 CPU 880GB RAM | 2 A10 GPU 48GB RAM | £8.60/ hour", - "NC40ads_H100_v5 Series | 40 CPU 320GB RAM | 1 H100 NVL GPU 94GB RAM | £7.70/ hour", - "NC80adis_H100_v5 Series | 80 CPU 640GB RAM | 2 H100 NVL GPU 188GB RAM | £15.90/ hour" - ] - }, - "shared_storage_access": { - "$id": "#/properties/shared_storage_access", - "type": "boolean", - "title": "Shared storage", - "default": true, - "description": "Enable access to shared storage" - }, - "enable_shutdown_schedule": { - "$id": "#/properties/enable_shutdown_schedule", - "type": "boolean", - "title": "Enable Shutdown Schedule", - "default": false, - "description": "Enable automatic shutdown schedule for the VM" - }, - "assign_to_another_user": { - "type": "boolean", - "title": "Assign this VM to another user", - "description": "Check this box if you want to assign this VM to another user.", + "title": "Owner ID", + "description": "Enter the Object ID of the user you want to assign this VM to.", "default": false, "updateable": false - } - }, - "allOf": [ - { - "if": { - "properties": { - "enable_shutdown_schedule": { - "const": true - } - }, - "required": [ - "enable_shutdown_schedule" - ] - }, - "then": { - "properties": { - "shutdown_time": { - "type": "string", - "title": "Shutdown Time", - "description": "Time of day to shutdown the VM (HHmm format), e.g. 1800", - "pattern": "^([01]?[0-9]|2[0-3])[0-5][0-9]$", - "default": "1800" - }, - "shutdown_timezone": { - "type": "string", - "title": "Shutdown Timezone", - "description": "Timezone for the shutdown schedule", - "default": "UTC", - "enum": [ - "Afghanistan Standard Time", - "Alaskan Standard Time", - "Arab Standard Time", - "Arabian Standard Time", - "Arabic Standard Time", - "Argentina Standard Time", - "Atlantic Standard Time", - "AUS Central Standard Time", - "AUS Eastern Standard Time", - "Azerbaijan Standard Time", - "Azores Standard Time", - "Bahia Standard Time", - "Bangladesh Standard Time", - "Belarus Standard Time", - "Canada Central Standard Time", - "Cape Verde Standard Time", - "Caucasus Standard Time", - "Cen. Australia Standard Time", - "Central America Standard Time", - "Central Asia Standard Time", - "Central Brazilian Standard Time", - "Central Europe Standard Time", - "Central European Standard Time", - "Central Pacific Standard Time", - "Central Standard Time (Mexico)", - "Central Standard Time", - "China Standard Time", - "Dateline Standard Time", - "E. Africa Standard Time", - "E. Australia Standard Time", - "E. Europe Standard Time", - "E. South America Standard Time", - "Eastern Standard Time (Mexico)", - "Eastern Standard Time", - "Egypt Standard Time", - "Ekaterinburg Standard Time", - "Fiji Standard Time", - "FLE Standard Time", - "Georgian Standard Time", - "GMT Standard Time", - "Greenland Standard Time", - "Greenwich Standard Time", - "GTB Standard Time", - "Hawaiian Standard Time", - "India Standard Time", - "Iran Standard Time", - "Israel Standard Time", - "Jordan Standard Time", - "Kaliningrad Standard Time", - "Korea Standard Time", - "Libya Standard Time", - "Line Islands Standard Time", - "Magadan Standard Time", - "Mauritius Standard Time", - "Middle East Standard Time", - "Montevideo Standard Time", - "Morocco Standard Time", - "Mountain Standard Time (Mexico)", - "Mountain Standard Time", - "Myanmar Standard Time", - "N. Central Asia Standard Time", - "Namibia Standard Time", - "Nepal Standard Time", - "New Zealand Standard Time", - "Newfoundland Standard Time", - "North Asia East Standard Time", - "North Asia Standard Time", - "Pacific SA Standard Time", - "Pacific Standard Time (Mexico)", - "Pacific Standard Time", - "Pakistan Standard Time", - "Paraguay Standard Time", - "Romance Standard Time", - "Russia Time Zone 10", - "Russia Time Zone 11", - "Russia Time Zone 3", - "Russian Standard Time", - "SA Eastern Standard Time", - "SA Pacific Standard Time", - "SA Western Standard Time", - "Samoa Standard Time", - "SE Asia Standard Time", - "Singapore Standard Time", - "South Africa Standard Time", - "Sri Lanka Standard Time", - "Syria Standard Time", - "Taipei Standard Time", - "Tasmania Standard Time", - "Tokyo Standard Time", - "Tonga Standard Time", - "Turkey Standard Time", - "Ulaanbaatar Standard Time", - "US Eastern Standard Time", - "US Mountain Standard Time", - "UTC", - "UTC+12", - "UTC-02", - "UTC-11", - "Venezuela Standard Time", - "Vladivostok Standard Time", - "W. Australia Standard Time", - "W. Central Africa Standard Time", - "W. Europe Standard Time", - "West Asia Standard Time", - "West Pacific Standard Time", - "Yakutsk Standard Time" - ] - } - }, - "required": [ - "shutdown_time", - "shutdown_timezone" - ] - } + } }, - { - "if": { - "properties": { - "assign_to_another_user": { - "const": true - } - }, - "required": [ - "assign_to_another_user" - ] - }, - "then": { - "properties": { - "owner_id": { - "type": "string", - "title": "Owner ID", - "description": "Enter the Object ID of the user you want to assign this VM to.", - "default": false, - "updateable": false - } - }, - "required": [ - "owner_id" - ] - } - } - ], - "uiSchema": { - "admin_username": { - "classNames": "tre-hidden" - } + "required": [ + "owner_id" + ] + } + } + ], + "uiSchema": { + "admin_username": { + "classNames": "tre-hidden" } + } } \ No newline at end of file