Openstack Support

Roboconf has a target implementation for Openstack.
It only supports the creation of compute VMs.

To install it, open the DM’s interactive mode and type in…

# Here in version 0.4
feature:install jclouds-for-roboconf
bundle:install --start mvn:net.roboconf/roboconf-target-iaas-openstack/0.4

The implementation can associate a public address to the created VM.
The behavior depends on the target.properties file.

Roboconf keeps memory of the most public address for the created VM.
This address will be used by other components which resolve their dependencies through Roboconf.

As an example, if a MySQL server is deployed on OpenStack but only has an internal address (i.e. not visible the IaaS), then any web application server that uses it will have to be inside the same network. This can lead to some issues in case of hybrid cloud. For the moment, Roboconf does not check anything with respect to this. It is assumed the administrator knows what he does.

Sample target.properties.
Just copy / paste and edit.

# Configuration file for Openstack
target.id = iaas-openstack

# The URL of Nova, Openstack's compute component
openstack.nova-url = 

# Credentials to connect
openstack.tenant-name = 
openstack.user = 
openstack.password = 

# VM configuration
openstack.image-name = 
openstack.flavor-name = m1.small
openstack.security-group = default
openstack.key-pair = default

# VM networking.
openstack.floating-ip-pool = 
openstack.network-id = 

Here is a complete description of the parameters for OpenStack.

Property Description Default Mandatory
target.id Determines the target handler to use none, must be “iaas-openstack” yes
openstack.nova-url The URL of Nova, Openstack’s compute component. none yes
openstack.tenant-name The tenant name (not the ID). none yes
openstack.user The name of the user to connect. none yes
openstack.password The password of the user to connect. none yes
openstack.image-name The name of the VM image or snapshot used as a template for the VM. none yes
openstack.flavor-name The hardware configuration for new VMs. Example: m1.tiny none yes
openstack.security-group The VM security group default yes
openstack.key-pair The name of the key pair used to connect to new VMs. none yes
openstack.floating-ip-pool A pool of available public IPs, so that one of them be associated to the VM (if no pool is provided, the VM only has a private IP). none no
openstack.network-id A neutron (aka quantum) network ID, to use for networking. none no

Notice we do not use image and flavor IDs in our configuration files.
This is because this IaaS extension is implemented with Apache JClouds which requires region settings when specifying identifiers.

As an example, if you wanted to create a new VM from image ID abcdef with a flavor (or hardware) called m1.small in Openstack, you would have a configuration looking-like…

# ...
openstack.image-id = RegionOne/abcdef
openstack.hardware-id = RegionOne/2
# ... assuming 2 is the ID for flavor m1.small...
# ... and RegionOne is the associated region.

Since region settings and hardware ID are not always easy to retrieve, we prefer to rely on names.
We assume cloud infrastructures will be managed so that these names remain unique. Otherwise, feel free to post a feature request in our issues tracker.