A number of features are available in most cloud hosts, but not all are available everywhere. This may be because the feature isn't supported by the cloud host itself, or it may only be that the feature has not yet been added to Salt Cloud. In a handful of cases, it is because the feature does not make sense for a particular cloud provider (Saltify, for instance).
This matrix shows which features are available in which cloud hosts, as far as Salt Cloud is concerned. This is not a comprehensive list of all features available in all cloud hosts, and should not be used to make business decisions concerning choosing a cloud host. In most cases, adding support for a feature to Salt Cloud requires only a little effort.
Both AWS and Rackspace are listed as "Legacy". This is because those drivers have been replaced by other drivers, which are generally the preferred method for working with those hosts.
The EC2 driver should be used instead of the AWS driver, when possible. The OpenStack driver should be used instead of the Rackspace driver, unless the user is dealing with instances in "the old cloud" in Rackspace.
When adding new features to a particular cloud host, please make sure to add the feature to this table. Additionally, if you notice a feature that is not properly listed here, pull requests to fix them is appreciated.
These are features that are available for almost every cloud host.
AWS (Legacy) |
CloudStack |
Digital Ocean |
EC2 |
GoGrid |
JoyEnt |
Linode |
OpenStack |
Parallels |
Rackspace (Legacy) |
Saltify |
Vagrant |
Softlayer |
Softlayer Hardware |
Aliyun |
Tencent Cloud |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Query |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[1] |
[1] |
Yes |
Yes |
Yes |
Yes |
Full Query |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[1] |
[1] |
Yes |
Yes |
Yes |
Yes |
Selective Query |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[1] |
[1] |
Yes |
Yes |
Yes |
Yes |
List Sizes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[2] |
[2] |
Yes |
Yes |
Yes |
Yes |
List Images |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
List Locations |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[2] |
[2] |
Yes |
Yes |
Yes |
Yes |
create |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[1] |
Yes |
Yes |
Yes |
Yes |
destroy |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
[1] |
[1] |
Yes |
Yes |
Yes |
Yes |
[1] Yes, if salt-api is enabled.
[2] Always returns {}.
These are features that are performed on a specific instance, and require an instance name to be passed in. For example:
# salt-cloud -a attach_volume ami.example.com
Actions |
AWS (Legacy) |
CloudStack |
Digital Ocean |
EC2 |
GoGrid |
JoyEnt |
Linode |
OpenStack |
Parallels |
Rackspace (Legacy) |
|
Softlayer |
Softlayer Hardware |
Aliyun |
Tencent Cloud |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
attach_volume |
Yes |
||||||||||||||
create_attach_volumes |
Yes |
Yes |
|||||||||||||
del_tags |
Yes |
Yes |
|||||||||||||
delvol_on_destroy |
Yes |
||||||||||||||
detach_volume |
Yes |
||||||||||||||
disable_term_protect |
Yes |
Yes |
|||||||||||||
enable_term_protect |
Yes |
Yes |
|||||||||||||
get_tags |
Yes |
Yes |
|||||||||||||
keepvol_on_destroy |
Yes |
||||||||||||||
list_keypairs |
Yes |
||||||||||||||
rename |
Yes |
Yes |
|||||||||||||
set_tags |
Yes |
Yes |
|||||||||||||
show_delvol_on_destroy |
Yes |
||||||||||||||
show_instance |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
|||||||
show_term_protect |
Yes |
||||||||||||||
start |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
||||||||
stop |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
||||||||
take_action |
Yes |
These are features that are performed against a specific cloud provider, and require the name of the provider to be passed in. For example:
# salt-cloud -f list_images my_digitalocean
Functions |
AWS (Legacy) |
CloudStack |
Digital Ocean |
EC2 |
GoGrid |
JoyEnt |
Linode |
OpenStack |
Parallels |
Rackspace (Legacy) |
|
Softlayer |
Softlayer Hardware |
Aliyun |
Tencent Cloud |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
block_device_mappings |
Yes |
||||||||||||||
create_keypair |
Yes |
||||||||||||||
create_volume |
Yes |
||||||||||||||
delete_key |
Yes |
||||||||||||||
delete_keypair |
Yes |
||||||||||||||
delete_volume |
Yes |
||||||||||||||
get_image |
Yes |
Yes |
Yes |
Yes |
|||||||||||
get_ip |
Yes |
||||||||||||||
get_key |
Yes |
||||||||||||||
get_keyid |
Yes |
||||||||||||||
get_keypair |
Yes |
||||||||||||||
get_networkid |
Yes |
||||||||||||||
get_node |
Yes |
||||||||||||||
get_password |
Yes |
||||||||||||||
get_size |
Yes |
Yes |
Yes |
||||||||||||
get_spot_config |
Yes |
||||||||||||||
get_subnetid |
Yes |
||||||||||||||
iam_profile |
Yes |
Yes |
Yes |
||||||||||||
import_key |
Yes |
||||||||||||||
key_list |
Yes |
||||||||||||||
keyname |
Yes |
Yes |
|||||||||||||
list_availability_zones |
Yes |
Yes |
Yes |
||||||||||||
list_custom_images |
Yes |
Yes |
|||||||||||||
list_keys |
Yes |
||||||||||||||
list_nodes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
list_nodes_full |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
list_nodes_select |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
list_vlans |
Yes |
Yes |
|||||||||||||
rackconnect |
Yes |
||||||||||||||
reboot |
Yes |
Yes |
[1] |
Yes |
Yes |
||||||||||
reformat_node |
Yes |
||||||||||||||
securitygroup |
Yes |
Yes |
|||||||||||||
securitygroupid |
Yes |
Yes |
|||||||||||||
show_image |
Yes |
Yes |
Yes |
Yes |
|||||||||||
show_key |
Yes |
||||||||||||||
show_keypair |
Yes |
Yes |
|||||||||||||
show_volume |
Yes |
[1] Yes, if salt-api is enabled.