Feature Matrix

A number of features are available in most cloud providers, but not all are available everywhere. This may be because the feature isn't supported by the cloud provider 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 providers, as far as Salt Cloud is concerned. This is not a comprehensive list of all features available in all cloud providers, and should not be used to make business decisions concerning choosing a cloud provider. In most cases, adding support for a feature to Salt Cloud requires only a little effort.

Legacy Drivers

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 providers.

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.

Note for Developers

When adding new features to a particular cloud provider, 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.

Standard Features

These are features that are available for almost every provider.

  AWS (Legacy) CloudStack Digital Ocean EC2 GoGrid JoyEnt Linode OpenStack Parallels Rackspace (Legacy) Saltify Softlayer Softlayer Hardware Aliyun
Query Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes   Yes Yes Yes
Full Query Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes   Yes Yes Yes
Selective Query Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes   Yes Yes Yes
List Sizes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes   Yes Yes Yes
List Images 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   Yes Yes Yes
create Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
destroy Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes   Yes Yes Yes

Actions

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) Saltify Softlayer Softlayer Hardware Aliyun
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
show_term_protect       Yes                    
start Yes     Yes   Yes     Yes         Yes
stop Yes     Yes   Yes     Yes         Yes
take_action           Yes                

Functions

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) Saltify Softlayer Softlayer Hardware Aliyun
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
list_custom_images                       Yes    
list_keys           Yes                
list_nodes 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
list_nodes_select Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
list_vlans                       Yes Yes  
rackconnect               Yes            
reboot       Yes   Yes               Yes
reformat_node           Yes                
securitygroup Yes     Yes                    
securitygroupid       Yes                   Yes
show_image       Yes         Yes         Yes
show_key           Yes                
show_keypair     Yes Yes                    
show_volume       Yes                   Yes