JClouds Support

Roboconf has a generic target implementation based on Apache JClouds.
For the moment, it only supports the creation of compute VMs.

To install it, open the DM’s interactive mode and use one of the following options.
With the roboconf:target command:

# The version will be deduced automatically by the DM
roboconf:target jclouds

Or with the native Karaf commands:

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

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

# Configuration file for JClouds
handler = jclouds
id = a unique identifier
name = 
description = 

# The JClouds provider
jclouds.provider-id = 

# The URL to reach the cloud API
jclouds.endpoint = 

# The credentials to connect
jclouds.identity = 
jclouds.credential = 

# The VM configuration
jclouds.security-group = 
jclouds.image-name =  
jclouds.hardware-name = 
jclouds.key-pair = 

Here is a complete description of the parameters for JClouds.

Property Description Default Mandatory
handler Determines the target handler to use none, must be “jclouds” yes
id A unique identifier for the target properties. - yes
name A human-readable name for the target - no
description A description of the target. - no
jclouds.provider-id The ID of the JClouds provider (AWS, Rackspace, etc). none yes
jclouds.endpoint The URL to reach the cloud API. none yes
jclouds.identity The user name for the cloud API. none yes
jclouds.credential The password for the cloud API. none yes
jclouds.image-name The name of the template image for new VMs. none yes
jclouds.security-group The name of the security group for new VMs. none yes
jclouds.hardware-name The hardware configuration to use to create a new VM, e.g. “m1.small”. Equivalent to flavor. none yes
jclouds.key-pair The name of the key pair used to connect in SSH to newly created VMs. Not all the providers support it. none no

Notice we do not use image and hardware IDs in our configuration files.
This is because JClouds 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…

# ...
jclouds.image-id = RegionOne/abcdef
jclouds.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.