Skip to content

Commit f095fb3

Browse files
committed
extensions: vnc console access
Related: apache/cloudstack#11601 Signed-off-by: Abhishek Kumar <[email protected]>
1 parent f47826c commit f095fb3

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

source/adminguide/extensions.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ An Orchestrator extension enables CloudStack to delegate VM orchestration to an
6464

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

67-
- Instance Lifecycle Support: Extensions can handle basic VM actions like prepare, deploy, start, stop, reboot, status and delete.
67+
- Instance Lifecycle Support: Orchestrator extensions can handle basic VM actions like prepare, deploy, start, stop, reboot, status and delete.
68+
69+
- Console Access: Instances can be accessed via VNC consoles. CloudStack retrieves console details from extensions using the ``getconsole`` action, and forwards them to the Console Proxy VM (CPVM) to provide users with console access. Currently, the built-in Proxmox extension supports console access for instances.
6870

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

source/adminguide/extensions/developer.rst

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,29 @@ Action Lifecycle
120120
1. A CloudStack action (e.g., deploy VM) triggers a corresponding extension action.
121121
2. CloudStack invokes the extension’s executable with appropriate parameters.
122122
3. The extension processes the input and responds within the timeout.
123-
4. CloudStack continues orchestration based on the result.
123+
4. CloudStack continues action workflow based on the result.
124+
125+
Console Access for Instances with Orchestrator Extensions
126+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
127+
128+
Orchestrator extensions can provide console access for instances via VNC.
129+
To enable this, the extension must implement the ``getconsole`` action and return output in the following JSON format:
130+
131+
.. code-block:: json
132+
133+
{
134+
...
135+
"console": {
136+
"host": "pve-node1.internal",
137+
"port": "5901",
138+
"password": "PVEVNC:6329C6AA::ZPcs5MT....d9",
139+
"protocol": "vnc"
140+
}
141+
}
142+
143+
The returned details are forwarded to the Console Proxy VM (CPVM) running in the same zone as the instance.
144+
It is required that the specified **host** and **port** are reachable from the CPVM.
145+
124146

125147
Custom Actions
126148
^^^^^^^^^^^^^^
@@ -183,4 +205,4 @@ For a clearer understanding of how to implement an extension, developers can ref
183205

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

186-
Additionally, CloudStack includes built-in extensions for Proxmox and Hyper-V that demonstrate how to implement extensions in different languages - Bash and Python.
208+
Additionally, CloudStack includes in-built extensions for Proxmox and Hyper-V that demonstrate how to implement extensions in different languages - Bash and Python.

source/adminguide/extensions/limitations.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ by adding custom actions in the scripts written for the built-in extensions.
2424

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

27-
- Console access to the external Instances.
28-
2927
- Data volumes.
3028

3129
- User Data and Metadata services.
@@ -40,6 +38,8 @@ by adding custom actions in the scripts written for the built-in extensions.
4038

4139
- Add Nics to Instance post deployment.
4240

41+
- Console access to the in-built Hyper-V orchestrator Instances.
42+
4343
**Actions which can be implemented using Custom Actions in built-in extensions:**
4444

4545
- Reinstall Instance.

0 commit comments

Comments
 (0)