Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added source/_static/images/MaaS-add-cluster.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/_static/images/MaaS-add-host.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/_static/images/MaaS-add-template.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/_static/images/MaaS-add-token.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/_static/images/MaaS-deploy-instance.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified source/_static/images/built-in-extensions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion source/adminguide/extensions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ An Orchestrator extension enables CloudStack to delegate VM orchestration to an
|extension.png|


CloudStack provides in-built Orchestrator Extensions for Proxmox and Hyper-V which work with Proxmox and Hyper-V environments out of the box.
CloudStack provides in-built Orchestrator Extensions for Proxmox, Hyper-V, MaaS which work with Proxmox, Hyper-V and MaaS environments out of the box.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe reword to "CloudStack provides in-build Orchestrator Extensions for Proxmox, Hyper-V and MaaS which work with their respective environments out of the box.


.. note::
- When a CloudStack host linked to an orchestrator extension is placed into Maintenance mode, all running instances on the host will be stopped.
Expand Down
77 changes: 72 additions & 5 deletions source/adminguide/extensions/inbuilt_extensions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
In-built Orchestrator Extensions
================================

CloudStack provides in-built Orchestrator Extensions for Proxmox and Hyper-V. These extensions work with Proxmox and Hyper-V environments out of the box, and can also serve as reference implementations for anyone looking to develop new custom extensions.
The Extension files are located at `/usr/share/cloudstack-management/extensions/Proxmox` and `/usr/share/cloudstack-management/extensions/HyperV` respectively.
The Proxmox Extension is written in shell script, while the Hyper-V Extension is written in python.
Both of these Extensions support some custom actions in addition to the standard VM actions like deploy, start, stop, reboot, status and delete.
CloudStack provides in-built Orchestrator Extensions for Proxmox, Hyper-V and MaaS. These extensions work with Proxmox, Hyper-V and MaaS environments out of the box, and can also serve as reference implementations for anyone looking to develop new custom extensions.
The Extension files are located at `/usr/share/cloudstack-management/extensions/Proxmox`, `/usr/share/cloudstack-management/extensions/HyperV` and `/usr/share/cloudstack-management/extensions/MaaS` respectively.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Extension files are located at `/usr/share/cloudstack-management/extensions/Proxmox`, `/usr/share/cloudstack-management/extensions/HyperV` and `/usr/share/cloudstack-management/extensions/MaaS` respectively.
The Extension files are located in `/usr/share/cloudstack-management/extensions/`, under the subdirectories `Proxmox`, `HyperV`, and `MaaS`.

The Proxmox Extension is written in shell script, while the Hyper-V and MaaS Extensions are written in python.
All of these Extensions support some custom actions in addition to the standard VM actions like deploy, start, stop, reboot, status and delete.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MaaS doesn't have any custom actions, right?
Can modify this to "Proxmox and Hyper-V Extensions support some custom actions ..."

After installing or upgrading CloudStack, in-built Extensions will show up in the Extensions section in UI.

|built-in-extensions.png|
Expand Down Expand Up @@ -267,8 +267,70 @@ The VR responds with the correct IP address as configured in CloudStack. Once th
Users can then manage the Hyper-V VM like any other CloudStack guest Instance. Users can apply Egress Policies,
Firewall Rules, Port Forwarding, and other networking features seamlessly through the CloudStack UI or API.

MaaS
^^^^^^^^

The MaaS CloudStack Extension is written in python script and communicates with the Canonical MaaS `https://canonical.com/maas`_ using the MaaS APIs `https://canonical.com/maas/docs/api`_.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure, but the doesn't look right here. Also check if the links display is better with the suggestion.

Image
Suggested change
The MaaS CloudStack Extension is written in python script and communicates with the Canonical MaaS `https://canonical.com/maas`_ using the MaaS APIs `https://canonical.com/maas/docs/api`_.
The MaaS CloudStack Extension is written in python script and communicates with `Canonical MaaS <https://canonical.com/maas`_ using the `MaaS APIs <https://canonical.com/maas/docs/api>`_.

Please make the change to Proxmox API link as well on line #32

The Proxmox CloudStack Extension is written in shell script and communicates with the Proxmox Cluster using the `Proxmox VE API <https://pve.proxmox.com/wiki/Proxmox_VE_API>`_ over HTTPS."


Before using the MaaS Extension, ensure that the Canonical MaaS Service is configured correctly with servers added into it and accessible to CloudStack.

Get the API key from MaaS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

If not already set up, create a new API Key in the MaaS UI by navigating to left column under `admin > API keys`.

Existing `MAAS consumer` token can used or a new API key can be generated by clicking `Generate MAAS API Key` button
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Existing `MAAS consumer` token can used or a new API key can be generated by clicking `Generate MAAS API Key` button
Existing `MAAS consumer` token can be used or a new API key can be generated by clicking the `Generate MAAS API Key` button


|MaaS-add-token.png|

Note down the **key** value.

Adding MaaS to CloudStack
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To set up the MaaS Extension, follow these steps in CloudStack:

#. **Use Default Extension**

A default MaaS Extension is already available and enabled under `Extensions` tab.

#. **Create Cluster**

Create a Cluster with Hypervisor type `External` and Extension type `MaaS`.

|MaaS-add-cluster.png|

#. **Add Host**

Add a Host to the newly created Cluster with the following details:

To access MaaS environment, the `endpoint`, `apikey` need to be set in the Host.

* **endpoint**: IP address of the MaaS server. The API used for operations in the script will look like `http://<endpoint>:5240/MAAS/api/2.0`.
* **apikey**: API key for MaaS

|MaaS-add-host.png|


#. **Create Template**

A Template in CloudStack can map to either a `Template` or an `ISO` in MaaS.
Provide a dummy `url` and template name. Select `External` as the hypervisor and `MaaS` as the extension. Under `External Details`, specify:

.. _Proxmox VE API: https://pve.proxmox.com/pve-docs/api-viewer/index.html
* **distro_series**: The name of the operating system series available in MaaS to install on the machine. If not specified, script defaults to `ubuntu`

|MaaS-add-template.png|

#. **Deploy Instance**

Deploy an Instance using the Template created above. Optionally, provide the detail `vm_name` to specify the name of the VM in MaaS.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please check if we should call it VM or some generic term like system or machine

Otherwise, the CloudStack Instance's internal name is used. The Instance will be provisioned on a randomly selected MaaS machine.

|MaaS-deploy-instance.png|

#. **Lifecycle Operations**

Operations **Start**, **Stop**, **Reboot**, and **Delete** can be performed on the Instance from CloudStack.

.. Images

Expand All @@ -285,3 +347,8 @@ Firewall Rules, Port Forwarding, and other networking features seamlessly throug
.. |hyperv-add-host.png| image:: /_static/images/hyperv-add-host.png
.. |hyperv-add-template.png| image:: /_static/images/hyperv-add-template.png
.. |hyperv-add-iso.png| image:: /_static/images/hyperv-add-iso.png
.. |MaaS-add-token.png| image:: /_static/images/MaaS-add-token.png
.. |MaaS-add-cluster.png| image:: /_static/images/MaaS-add-cluster.png
.. |MaaS-add-host.png| image:: /_static/images/MaaS-add-host.png
.. |MaaS-add-template.png| image:: /_static/images/MaaS-add-template.png
.. |MaaS-deploy-instance.png| image:: /_static/images/MaaS-deploy-instance.png