Guacamole User Resources
- linuxvm - a Linux-based virtual machine
- windowsvm - A Windows-based virtual machine
Customising the user resources
The guacamole-azure-linuxvm and guacamole-azure-windowsvm folders follow a consistent layout.
To update one of these templates (or to create a new template based on these folders) to use different image details or VM sizes, there are a few files that need to be updated:
| File | Description | 
|---|---|
| porter.yaml | This file describes the template and the name should be updated when creating a template based on the folder. This file also contains a customdata section that describes the VM properties.Additionally, the version needs to be updated to deploy an updated version | 
| template_schema.json | This file controls the validation applied to the template, for example specifying the valid options for fields such as size and image | 
Configuration
In porter.yaml, the custom section contains a couple of sub-sections (shown below)
custom:
  vm_sizes:
    "2 CPU | 8GB RAM": Standard_D2s_v5
    "4 CPU | 16GB RAM": Standard_D4s_v5
    "8 CPU | 32GB RAM": Standard_D8s_v5
    "16 CPU | 64GB RAM": Standard_D16s_v5
  image_options:
    "Ubuntu 22.04 LTS":
      source_image_reference:
        publisher: canonical
        offer: 0001-com-ubuntu-server-jammy
        sku: 22_04-lts-gen2
        version: latest
        apt_sku: 22.04
      install_ui: true
      conda_config: false
    # "Custom Image From Gallery":
    #   source_image_name: your-image
    #   install_ui: true
    #   conda_config: true
The vm_sizes section is a map of a custom SKU description to the SKU identifier.
The image_options section defined the possible image choices for the template (note that the name of the image used here needs to be included in the corresponding enum in template_schema.json).
Within the image definition in image_options there are a few properties that can be specified:
| Name | Description | 
|---|---|
| source_image_name | Specify VM image to use by name (see notes below for identifying the image gallery containing the image) | 
| source_image_reference | Specify VM image to use by publisher,offer,sku&version(e.g. for Azure Marketplace images) | 
| install_ui | (Linux only) Set trueto install desktop environment | 
| conda_config | Set true to configure conda | 
When specifying images using source_image_name, the image must be stored in an image gallery.
To enable re-using built user resource templates across environments where the image may vary, the image gallery is configured via the RP_BUNDLE_VALUES environment variable when deploying the TRE.
The RP_BUNDLE_VALUES variable is a JSON object, and the image_gallery_id property within it identifies the image gallery that contains the images specified by source_image_name:
RP_BUNDLE_VALUES='{"image_gallery_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<your-rg>/providers/Microsoft.Compute/galleries/<your-gallery-name>"}