Data models
Setups
A setup describes how a virtual machine (VM) should be created by Steep’s cloud manager.
Property | Type | Description |
---|---|---|
id (required) | string | A unique setup identifier |
flavor (required) | string | The flavor of the new VM |
imageName (required) | string | The name of the VM image to deploy |
availabilityZone (required) | string | The availability zone in which to create the VM |
blockDeviceSizeGb (required) | number | The size of the VM’s main block device in gigabytes |
blockDeviceVolumeType (optional) | string | An optional type of the VM’s main block device. By default, the type will be selected automatically. |
minVMs (optional) | number | An optional minimum number of VMs to create with this setup. The default value is 0 . |
maxVMs (required) | number | The maximum number of VMs to create with this setup |
maxCreateConcurrent (optional) | number | The maximum number of VMs to create and provision concurrently. The default value is 1 . |
provisioningScripts (optional) | array | An optional list of paths to provisioning scripts that should be executed on the VM after it has been created |
providedCapabilities (optional) | array | An optional set of strings specifying capabilities that VMs with this setup will have |
sshUsername (optional) | string | An optional username for the SSH connection to the created VM. Overrides the main configuration item steep.cloud.ssh.username if it is defined. |
additionalVolumes (optional) | array | An optional list of volumes that will be attached to the VM |
parameters (optional) | object | An optional custom object with user-defined properties. Use this object to pass arbitrary values to provisioning scripts where they can be accessed through the global variable setup . |
creation (optional) | object | An optional creation policy that defines rules for creating VMs from this setup. Default values for this parameter are defined in the main configuration. |
Example
id: default
flavor: 7d217779-4d7b-4689-8a40-c12a377b946d
imageName: Ubuntu 18.04
availabilityZone: nova
blockDeviceSizeGb: 50
minVMs: 0
maxVMs: 4
provisioningScripts:
- conf/setups/default/01_docker.sh
- conf/setups/default/02_steep.sh
providedCapabilities:
- docker
additionalVolumes:
- sizeGb: 50
type: SSD
Volumes
This data model describes an additional volume that can be attached to a virtual machine specified by a setup.
Property | Type | Description |
---|---|---|
sizeGb (required) | number | The volume’s size in gigabytes |
type (optional) | string | Type the volume’s type. By default, the type will be selected automatically. |
availabilityZone (optional) | string | The availability zone in which to create the volume. By default, it will be created in the same availability zone as the VM to which it will be attached. |
deviceName (optional) | string | The device name under which the volume will be exposed to the operating system on the virtual machine (e.g. /dev/sdb ). Please note that this value is mandatory for some cloud providers, while for others, it is optional and they automatically assign a name. Some even ignore this value completely (e.g. OpenStack). Also, some cloud providers only accept names that correspond to a specific scheme. Please refer to your cloud provider’s documentation on whether specifying a name is mandatory and which values are considered valid. |
Example
sizeGb: 50
type: SSD
availabilityZone: nova
Creation policies
A creation policy defines rules for creating VMs from a certain setup.
Property | Type | Description |
---|---|---|
retries (optional) | object | An optional retry policy that specifies how many attempts should be made to create a VM (if creation fails) as well as possible (exponential) delays between those attempts. If this property is null , default values from the steep.yaml file will be used. |
lockAfterRetries (optional) | duration | When the maximum number of attempts to create a VM from a certain setup has been reached, the setup will be locked and no other VM with this setup will be created. This property defines how long it will stay locked. |
Example
retries:
maxAttempts: 5
delay: 40s
exponentialBackoff: 2
lockAfterRetries: 20m