saltstack/salt

View on GitHub
doc/topics/cloud/features.rst

Summary

Maintainability
Test Coverage
.. _salt-cloud-feature-matrix:

==============
Feature Matrix
==============

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.

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

Note for Developers
===================
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.

Standard Features
=================
These are features that are available for almost every cloud host.

.. container:: scrollable

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

[1] Yes, if salt-api is enabled.

[2] Always returns `{}`.

Actions
=======
These are features that are performed on a specific instance, and require an
instance name to be passed in. For example:

.. code-block:: bash

    # salt-cloud -a attach_volume ami.example.com

.. container:: scrollable

    +-----------------------+--------+----------+-------+---+------+------+------+---------+---------+---------+--------+---------+---------+------+
    |Actions                |AWS     |CloudStack|Digital|EC2|GoGrid|JoyEnt|Linode|OpenStack|Parallels|Rackspace|Saltify&|Softlayer|Softlayer|Aliyun|
    |                       |(Legacy)|          |Ocean  |   |      |      |      |         |         |(Legacy) | Vagrant|         |Hardware |      |
    +=======================+========+==========+=======+===+======+======+======+=========+=========+=========+========+=========+=========+======+
    |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   |
    +-----------------------+--------+----------+-------+---+------+------+------+---------+---------+---------+--------+---------+---------+------+
    |show_term_protect      |        |          |       |Yes|      |      |      |         |         |         |        |         |         |      |
    +-----------------------+--------+----------+-------+---+------+------+------+---------+---------+---------+--------+---------+---------+------+
    |start                  |Yes     |          |       |Yes|      |Yes   |Yes   |         |Yes      |         |        |         |         |Yes   |
    +-----------------------+--------+----------+-------+---+------+------+------+---------+---------+---------+--------+---------+---------+------+
    |stop                   |Yes     |          |       |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:

.. code-block:: bash

    # salt-cloud -f list_images my_digitalocean

.. container:: scrollable

    +-----------------------+--------+----------+-------+---+------+------+------+---------+---------+---------+--------+---------+---------+------+
    |Functions              |AWS     |CloudStack|Digital|EC2|GoGrid|JoyEnt|Linode|OpenStack|Parallels|Rackspace|Saltify&|Softlayer|Softlayer|Aliyun|
    |                       |(Legacy)|          |Ocean  |   |      |      |      |         |         |(Legacy) | Vagrant|         |Hardware |      |
    +=======================+========+==========+=======+===+======+======+======+=========+=========+=========+========+=========+=========+======+
    |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   |      |         |         |         |[1]     |         |         |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   |
    +-----------------------+--------+----------+-------+---+------+------+------+---------+---------+---------+--------+---------+---------+------+

[1] Yes, if salt-api is enabled.