Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
4 changes: 3 additions & 1 deletion source/adminguide/extensions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ An Orchestrator extension enables CloudStack to delegate VM orchestration to an

- Hosts: Multiple hosts can be added to such clusters, ideally pointing to different physical or external hosts.

- Instance Lifecycle Support: Extensions can handle basic VM actions like prepare, deploy, start, stop, reboot, status and delete.
- Instance Lifecycle Support: Orchestrator extensions can handle basic VM actions like prepare, deploy, start, stop, reboot, status and delete.

- Console Access: Instances can be accessed either via VNC consoles or through a direct URL, depending on the capabilities of the orchestrator extension. CloudStack retrieves console details from extensions using the ``getconsole`` action and either forwards them to the Console Proxy VM (CPVM) (for VNC access) or provides the direct console URL to the user. Since 4.22.0, out-of-the-box console access support is available for instances deployed using the in-built Proxmox extension. See :ref:`Console Access for Instances with Orchestrator Extensions <console-access-for-instances-with-orchestrator-extensions>`for details on adding console access support in developed extensions.

- Configuration Details: Key-value configuration details can be specified at different levels - extension, cluster mapping, host, template, service offering, instance.

Expand Down
45 changes: 43 additions & 2 deletions source/adminguide/extensions/developer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,48 @@ Action Lifecycle
1. A CloudStack action (e.g., deploy VM) triggers a corresponding extension action.
2. CloudStack invokes the extension’s executable with appropriate parameters.
3. The extension processes the input and responds within the timeout.
4. CloudStack continues orchestration based on the result.
4. CloudStack continues action workflow based on the result.

Console Access for Instances with Orchestrator Extensions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Orchestrator extensions can provide console access for instances either through **VNC** or a **direct URL**.
Copy link
Member

Choose a reason for hiding this comment

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

Here we state that console access can only be VNC or direct/external URL based?

Also the word direct is confusing, probably you want to say it's an external URL (or just URL) ?

To enable this, the extension must implement the ``getconsole`` action and return output in one of the following JSON formats:

VNC-based console:

.. code-block:: json

{
"status": "success",
...
"console": {
"host": "pve-node1.internal",
"port": "5901",
"password": "PVEVNC:6329C6AA::ZPcs5MT....d9",
"protocol": "vnc"
}
}

For VNC-based access, the returned details are forwarded to the Console Proxy VM (CPVM) in the same zone as the instance. The specified **host** and **port** must be reachable from the CPVM.

Direct URL-based console:

.. code-block:: json

{
"status": "success",
...
"console": {
"url": "CONSOLE_URL",
"protocol": "direct"
}
}


.. note::
For direct URL–based console access, CloudStack does not report the acquired or client IP address.
In this mode, security and access control must be handled by the server providing the console.

Custom Actions
^^^^^^^^^^^^^^
Expand Down Expand Up @@ -183,4 +224,4 @@ For a clearer understanding of how to implement an extension, developers can ref

It serves as a template with minimal required action handlers, making it a useful starting point for building new extensions.

Additionally, CloudStack includes built-in extensions for Proxmox and Hyper-V that demonstrate how to implement extensions in different languages - Bash and Python.
Additionally, CloudStack includes in-built extensions for Proxmox and Hyper-V that demonstrate how to implement extensions in different languages - Bash and Python.
4 changes: 4 additions & 0 deletions source/adminguide/extensions/inbuilt_extensions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ The Proxmox CloudStack Extension is written in shell script and communicates wit

Before using the Proxmox Extension, ensure that the Proxmox Datacenter is configured correctly and accessible to CloudStack.

Since 4.22.0, console access support is available for instances deployed using the in-built Proxmox extension via VNC and console proxy VM.

Get the API Token-Secret from Proxmox
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down Expand Up @@ -161,6 +163,8 @@ using NTLM authentication for secure remote execution of PowerShell commands tha

Each Hyper-V host maps to a CloudStack Host. Before using the Hyper-V Extension, ensure that the Hyper-V host is accessible to the CloudStack Management Server via WinRM over HTTPS.

Console access for instances using the Hyper-V extension is not available out of the box.

Configuring WinRM over HTTPS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
2 changes: 0 additions & 2 deletions source/adminguide/extensions/limitations.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ by adding custom actions in the scripts written for the built-in extensions.

**Some general features/actions not supported at the framework level:**

- Console access to the external Instances.

- Data volumes.

- User Data and Metadata services.
Expand Down