Data models

Setups

A setup describes how a virtual machine (VM) should be created by Steep’s cloud manager.

PropertyTypeDescription
id
(required)
stringA unique setup identifier
flavor
(required)
stringThe flavor of the new VM
imageName
(required)
stringThe name of the VM image to deploy
availabilityZone
(required)
stringThe availability zone in which to create the VM
blockDeviceSizeGb
(required)
numberThe size of the VM’s main block device in gigabytes
blockDeviceVolumeType
(optional)
stringAn optional type of the VM’s main block device. By default, the type will be selected automatically.
minVMs
(optional)
numberAn optional minimum number of VMs to create with this setup. The default value is 0.
maxVMs
(required)
numberThe maximum number of VMs to create with this setup
maxCreateConcurrent
(optional)
numberThe maximum number of VMs to create and provision concurrently. The default value is 1.
provisioningScripts
(optional)
arrayAn optional list of paths to provisioning scripts that should be executed on the VM after it has been created
providedCapabilities
(optional)
arrayAn optional set of strings specifying capabilities that VMs with this setup will have
sshUsername
(optional)
stringAn 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)
arrayAn optional list of volumes that will be attached to the VM
parameters
(optional)
objectAn 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)
objectAn 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.

PropertyTypeDescription
sizeGb
(required)
numberThe volume’s size in gigabytes
type
(optional)
stringType the volume’s type. By default, the type will be selected automatically.
availabilityZone
(optional)
stringThe 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)
stringThe 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.

PropertyTypeDescription
retries
(optional)
objectAn 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)
durationWhen 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