Skip to content

Commit

Permalink
Enable scheduled shutdown of Guacamole Windows VMs
Browse files Browse the repository at this point in the history
Fixes #4205

Add support for scheduled shutdown of Guacamole Windows VMs.

* Add `enable_shutdown_schedule`, `shutdown_time`, and `shutdown_timezone` properties to `template_schema.json`.
* Add `enable_shutdown_schedule`, `shutdown_time`, and `shutdown_timezone` parameters to `porter.yaml`.
* Add `azurerm_dev_test_global_vm_shutdown_schedule` resource to `windowsvm.tf`.
* Add `enable_shutdown_schedule`, `shutdown_time`, and `shutdown_timezone` variables to `variables.tf`.
* Update bundle version in `porter.yaml`.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/microsoft/AzureTRE/issues/4205?shareId=XXXX-XXXX-XXXX-XXXX).
  • Loading branch information
marrobi committed Dec 18, 2024
1 parent 04df2b8 commit dfc8cdc
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
schemaVersion: 1.0.0
name: tre-service-guacamole-windowsvm
version: 1.0.7
version: 1.0.8
description: "An Azure TRE User Resource Template for Guacamole (Windows 10)"
dockerfile: Dockerfile.tmpl
registry: azuretre
Expand Down Expand Up @@ -100,6 +100,19 @@ parameters:
default: "vm-shared-storage"
- name: arm_environment
type: string
- name: enable_shutdown_schedule
type: boolean
default: false
description: "Enable automatic shutdown schedule for the VM"
- name: shutdown_time
default: ""
type: string
description: "Time of day to shutdown the VM (HHmm format)"
pattern: "^([01]?[0-9]|2[0-3])[0-5][0-9]$"
- name: shutdown_timezone
type: string
description: "Timezone for the shutdown schedule"
default: "UTC"

outputs:
- name: ip
Expand Down Expand Up @@ -145,6 +158,9 @@ install:
shared_storage_access: ${ bundle.parameters.shared_storage_access }
shared_storage_name: ${ bundle.parameters.shared_storage_name }
image_gallery_id: ${ bundle.parameters.image_gallery_id }
enable_shutdown_schedule: ${ bundle.parameters.enable_shutdown_schedule }
shutdown_time: ${ bundle.parameters.shutdown_time }
shutdown_timezone: ${ bundle.parameters.shutdown_timezone }
backendConfig:
use_azuread_auth: "true"
use_oidc: "true"
Expand All @@ -171,6 +187,9 @@ upgrade:
shared_storage_access: ${ bundle.parameters.shared_storage_access }
shared_storage_name: ${ bundle.parameters.shared_storage_name }
image_gallery_id: ${ bundle.parameters.image_gallery_id }
enable_shutdown_schedule: ${ bundle.parameters.enable_shutdown_schedule }
shutdown_time: ${ bundle.parameters.shutdown_time }
shutdown_timezone: ${ bundle.parameters.shutdown_timezone }
backendConfig:
use_azuread_auth: "true"
use_oidc: "true"
Expand Down Expand Up @@ -209,6 +228,9 @@ uninstall:
shared_storage_access: ${ bundle.parameters.shared_storage_access }
shared_storage_name: ${ bundle.parameters.shared_storage_name }
image_gallery_id: ${ bundle.parameters.image_gallery_id }
enable_shutdown_schedule: ${ bundle.parameters.enable_shutdown_schedule }
shutdown_time: ${ bundle.parameters.shutdown_time }
shutdown_timezone: ${ bundle.parameters.shutdown_timezone }
backendConfig:
use_azuread_auth: "true"
use_oidc: "true"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,75 @@
"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"
}
},
"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": [
"UTC -12",
"UTC -11",
"UTC -10",
"UTC -9",
"UTC -8",
"UTC -7",
"UTC -6",
"UTC -5",
"UTC -4",
"UTC -3",
"UTC -2",
"UTC -1",
"UTC",
"UTC +1",
"UTC +2",
"UTC +3",
"UTC +4",
"UTC +5",
"UTC +6",
"UTC +7",
"UTC +8",
"UTC +9",
"UTC +10",
"UTC +11",
"UTC +12"
]
}
},
"required": [
"shutdown_time",
"shutdown_timezone"
]
}
}
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,14 @@ variable "image_gallery_id" {
type = string
default = ""
}
variable "enable_shutdown_schedule" {
type = bool
default = false
}
variable "shutdown_time" {
type = string
}
variable "shutdown_timezone" {
type = string
default = "UTC"
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,3 +110,16 @@ resource "azurerm_key_vault_secret" "windowsvm_password" {

lifecycle { ignore_changes = [tags] }
}

resource "azurerm_dev_test_global_vm_shutdown_schedule" "shutdown_schedule" {
count = var.enable_shutdown_schedule ? 1 : 0

location = data.azurerm_resource_group.ws.location
virtual_machine_id = azurerm_windows_virtual_machine.windowsvm.id
daily_recurrence_time = var.shutdown_time
timezone = var.shutdown_timezone
enabled = var.enable_shutdown_schedule
notification_settings {
enabled = false
}
}

0 comments on commit dfc8cdc

Please sign in to comment.