Skip to main content

Provider-Specific Configuration

ImageFactory provides a unified interface for defining golden images, but each cloud provider has unique features and requirements. This guide details the provider-specific configuration options available in the template definition.

AWS (Amazon Web Services)

AWS configurations focus on AMI naming, storage types, and encryption.

PropertyTypeDescription
regionStringThe AWS region where the image will be built. Required for PUBLIC scope.
customImageNameString3-128 characters. Supports the $DATE variable, which is replaced with a timestamp.
ebsVolumeTypeEnumThe type of EBS volume for the root disk. Supported: gp2, gp3.
kmsKeyIdStringKMS key for EBS snapshot encryption. Supports key ID, alias, or ARN.

Additional EBS Volumes

You can attach up to 10 additional EBS volumes to the image. Each volume must be between 1GB and 10GB.

  • Linux Device Names: /dev/sdb through /dev/sdz.
  • Windows Device Names: xvdb through xvdz.

Azure

Azure configurations are designed for integration with the Azure Compute Gallery and support advanced security features like Trusted Launch.

PropertyTypeDescription
replicaRegionsListA list of Azure regions where the gallery image version should be replicated.
excludeFromLatestBooleanIf true, this version will not be used when the latest version is requested.
vmImageDefinitionObjectContains name, offer, and sku for the gallery image definition.
trustedLaunchBooleanEnables Gen2 Trusted Launch features. Cannot be changed after creation.
enableNvmeControllerBooleanEnable the NVMe disk controller for supported virtual machine sizes (Gen2 only). Cannot be changed after creation.
createManagedImageBooleanAlso creates a classic managed image alongside the gallery version.
disableVhdCleanupBooleanKeeps the intermediate VHD files in storage for Azure Local integration.

NVMe Controller

The Enable NVMe Controller option is available for Generation 2 virtual machines and enables the NVMe disk controller for supported virtual machine sizes.

Important: Hardware Features Cannot Be Changed

Once an Azure Compute Gallery image definition is created with specific hardware features (such as NVMe Controller or Trusted Launch), these features cannot be modified.

If you need to change hardware features for an existing template:

  1. Change the Name field in the Compute gallery VM image definition section to create a new image definition
  2. Or manually delete the existing image definition from your Azure Compute Gallery before rebuilding

Common Error: Attempting to publish an image with different hardware features to an existing gallery image definition will fail with the error: Required parameter 'galleryImageVersionName' is missing (null). This error message is misleading—it actually indicates a hardware configuration conflict between the new image and the existing gallery image definition.

Example Scenario:

  • You have a template named "Windows-Server-2025" without NVMe controller
  • You want to enable NVMe controller for the same template
  • Solution: Change the Name field to "Windows-Server-2025-NVMe" to create a new gallery image definition

UEFI Signing Keys

For Trusted Launch templates, you can provide additional signatures using Customer Variables.

{
"additionalSignatures": {
"uefiKeys": [
{
"type": "PK",
"variableName": "MY_PK_CERT_VAR"
}
]
}
}

Additional Data Disks

Similar to AWS, you can define up to 10 additional data disks, each between 1GB and 10GB.

GCP (Google Cloud Platform)

GCP configuration is streamlined, focusing on image naming and labeling.

PropertyTypeDescription
customImageNameString3-45 characters. Must be lowercase, numbers, and dashes only.

Note: ImageFactory automatically appends a unique timestamp suffix to the customImageName to ensure uniqueness within the GCP project.

Exoscale

Exoscale requires the specification of a target zone for the build process.

PropertyTypeDescription
zoneStringOne of the supported Exoscale zones (e.g., at-vie-1, ch-gva-2).

VMware

For on-premises or hybrid cloud environments, ImageFactory supports VMware builders.

PropertyTypeDescription
builderTypeEnumThe type of VMware environment. Supported: VCD (vCloud Director) or ESXi.

Examples

AWS Template Configuration

{
"provider": "AWS",
"config": {
"region": "eu-central-1",
"customImageName": "hardened-linux-$DATE",
"ebsVolumeType": "gp3",
"kmsKeyId": "alias/image-factory-key",
"additionalEbsVolumes": [
{
"deviceName": "/dev/sdb",
"size": 5,
"volumeType": "gp3"
}
]
}
}

Azure Template Configuration

{
"provider": "AZURE",
"config": {
"replicaRegions": ["westeurope", "northeurope"],
"trustedLaunch": true,
"vmImageDefinition": {
"name": "ubuntu-hardened",
"offer": "ubuntu",
"sku": "22_04-lts"
},
"additionalDataDisks": [
{
"lun": 0,
"size": 10
}
]
}
}