A compute resource that combines aspects of compute, networking, and storage capable of running an operating system and applications.
Venue-Specific Properties
These fields are subject to change in the future. They allow for venue- specific behavior.
AWS
venue:
aws:
instance_type: AWS specific instance size, such as t2.micro or m4.large
Azure
venue:
azure:
availability_set:
name: The name of tha availability set to join/create.
platform_update_domain_count:
The number of update domains in the AS. The default is 2 and the max is 5.
platform_fault_domain_count:
The number of fault domains in the AS. The default is 2 and the max is 3.
hyperv_generation: To force a specific generation, use `V1` or `V2`.
managed_identity_id: The pre-existing managed identity to assign to the instance.
This is useful if your instance is accessing other services
such as Azure Key Vault.
vm_size: Azure specific VM size, such as `Standard_B2s`.
If you use ultra disks you may need to specify this to get a compatible virtual machine.
The network interface cards in a virtual machine. A NIC attaches a virtual machine to a network for communication. The order in which the NIC are attached typically affects interface ordering.
Directives that indicate how the inner configuration of the virtual machine should be processed once provisioning is complete. If you deploy a stock image without any configuration you may not be able to manage the virtual machine. Some venues require certain configure properties to provision successfully, for example Azure requires an administrative username to be specified. These configuration directives are only valid when creating a virtual machine and will be ignored without any warnings for existing virtual machines.
Performs basic configuration of the virtual machine by setting an administrative username, password, and SSH public key for a single user on platforms that support those actions.
On AWS for linux instances, we inject a small cloud-init script to process this directive, therefore if userdata is specified then this stanza will be ignored. Your image must have cloud-init installed for this to work.
Azure requires this stanza to create a virtual machine therefore we recommend you populate it for a portable blueprint. These properties are delivered to the Azure Linux Agent.
Declares a public key to use during VM creation for administrative authentication. This must contain OpenSSH Public Key content. Valid content typically begins with ssh-rsa.
Requirements
Venue
OS
Supported?
Notes
AWS
Linux
Yes
AWS
Windows
Yes
AWS will generate a random password that you can retrieve using the AWS Console, CLI, or API and then decrypt with your private key.
The username to assign to the administrative user during VM creation. On Linux instances this user will receive sudo privileges, and on Windows instances this user will be an Administrator.
On Azure, a Managed Identity for the virtual machine will be added to the Key Vault to enable reading secrets. See the Microsoft documentation for how to use managed identities to read the secret from Key Vault as part of your bootstrapping code. Tip: setting the key_vault_name on the secret makes the URL to the vault predictable.
Performs inner configuration of virtual machines after first boot by using a cloud-init, shell, batch, or powershell script. When this is declared, the admin stanza will be ignored for AWS linux instances and it becomes the blueprint author's responsibility to properly configure the administrative user's rights on the instance (to sudo, for example).
An arbitrary configuration script for the virtual machine that is executed once at first boot. This method of configuration supports cloud-init, shell, batch, or powershell scripts. The maximum length of this script is 16 KiB. You should avoid putting any secrets into this data.
If you are using cloud-init, the Cloud config examples is a great place to find recipes for using cloud-init effectively.
Venue-Specific Help Pages
For detailed information about how each venue handles userdata for each operating system type, refer to the table below.
The image a virtual machine is cloned from. This will provide content for the boot disk, and possibly other disks as well if the image contains more than one disk.
The number of the availability zone to put the vm in. Every virtual machine is in one availability zone. If this value is not specified then one will be chosen automatically. Resources consumed by this virtual machine will automatically be placed into the same availability zone as the virtual machine.
Indicates how many of this vm should exist. When count is specified the name of the given resource will have a hyphen and numeric suffix added automatically, unless the count variable is referenced in the blueprint object name.
This property can be used to declare a dependency from this vm to any other object in the blueprint. This is not necessary for dependencies generated normally by the schema.
The name of this vm. The name can be different than the blueprint object name. When the name property is not present we apply automatic naming strategies to make resources easier to identify in each venue's management console. When the name property is specified we will use it exactly as specified.
Indicates whether or not this vm is read-only. If so, we verify only the existence and correctness of this vm to its specification rather than creating or modifying it.
The tags to place on this vm. Tags are metadata stored in (key = value, ...) form. Consumers are not allowed to use tags that begin with _tuono as those are reserved.
Discovered Properties
These properties are populated and available in the inventory following a successful apply.