Skip to content

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 custom data 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 true to 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 reusing 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>"}