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.
| Property | Type | Description |
|---|---|---|
| region | String | The AWS region where the image will be built. Required for PUBLIC scope. |
| customImageName | String | 3-128 characters. Supports the $DATE variable, which is replaced with a timestamp. |
| ebsVolumeType | Enum | The type of EBS volume for the root disk. Supported: gp2, gp3. |
| kmsKeyId | String | KMS 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.
| Property | Type | Description |
|---|---|---|
| replicaRegions | List | A list of Azure regions where the gallery image version should be replicated. |
| excludeFromLatest | Boolean | If true, this version will not be used when the latest version is requested. |
| vmImageDefinition | Object | Contains name, offer, and sku for the gallery image definition. |
| trustedLaunch | Boolean | Enables Gen2 Trusted Launch features. Cannot be changed after creation. |
| enableNvmeController | Boolean | Enable the NVMe disk controller for supported virtual machine sizes (Gen2 only). Cannot be changed after creation. |
| createManagedImage | Boolean | Also creates a classic managed image alongside the gallery version. |
| disableVhdCleanup | Boolean | Keeps 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.
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:
- Change the Name field in the Compute gallery VM image definition section to create a new image definition
- 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.
| Property | Type | Description |
|---|---|---|
| customImageName | String | 3-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.
| Property | Type | Description |
|---|---|---|
| zone | String | One 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.
| Property | Type | Description |
|---|---|---|
| builderType | Enum | The 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
}
]
}
}