You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/adminguide/extensions.rst
+22-3Lines changed: 22 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@
17
17
Extensions
18
18
==========
19
19
20
-
Extensions are a new mechanism introduced in Apache CloudStack to allow administrators to extend the platform's functionality by integrating external systems or custom workflows. Currently, CloudStack supports a single extension type called Orchestrator.
20
+
Extensions are a new mechanism introduced in Apache CloudStack to allow administrators to extend the platform's functionality by integrating external systems or custom workflows. Currently, CloudStack supports two extension types: Orchestrator and NetworkOrchestrator.
21
21
22
22
In the UI, extensions can be managed under *Extensions* menu.
23
23
@@ -26,7 +26,7 @@ In the UI, extensions can be managed under *Extensions* menu.
26
26
Overview
27
27
^^^^^^^^
28
28
29
-
An extension in CloudStack is defined as an external binary (written in any programming language) that implements specific actions CloudStack can invoke. This allows operators to manage resource lifecycle operations outside CloudStack, such as provisioning VMs in third-party systems or triggering external automation pipelines.
29
+
An extension in CloudStack is defined as an external binary (written in any programming language) that implements specific actions CloudStack can invoke. This allows operators to manage resource lifecycle operations outside CloudStack, such as provisioning VMs in third-party systems, orchestrating network and VPC services on external devices, or triggering external automation pipelines.
30
30
31
31
Extensions are managed through the API and UI, with support for configuration, resource mappings, and action execution.
32
32
@@ -41,7 +41,7 @@ Administrators can define and manage the following components of an extension:
41
41
42
42
- Configuration Details: Key-value properties used by the extension at runtime.
43
43
44
-
- Resource Mappings: Association between extensions and CloudStack resources such as clusters, etc.
44
+
- Resource Mappings: Association between extensions and CloudStack resources such as clusters and physical networks.
45
45
46
46
Path and Availabilty
47
47
^^^^^^^^^^^^^^^^^^^^
@@ -80,6 +80,25 @@ An Orchestrator extension enables CloudStack to delegate VM orchestration to an
80
80
81
81
|extension.png|
82
82
83
+
NetworkOrchestrator Extension
84
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
85
+
86
+
A NetworkOrchestrator extension enables CloudStack to delegate guest network and VPC service orchestration to an external network system. Key features include:
87
+
88
+
- Physical Network Mapping: NetworkOrchestrator extensions are registered with a CloudStack physical network instead of a cluster.
89
+
90
+
- Provider-based Integration: When a NetworkOrchestrator extension is registered with a physical network, CloudStack creates an external network service provider using the extension name. Network and VPC offerings can then use that provider.
91
+
92
+
- Capability-driven Services: Supported services are declared through the extension details ``network.services`` and optional per-service capabilities in ``network.service.capabilities``. CloudStack uses these declarations when exposing supported services and validating offering capabilities.
93
+
94
+
- Network and VPC Lifecycle: Depending on the declared services, the extension can handle operations for guest networks, VPCs, public IPs, NAT, load balancing, DHCP, DNS, userdata, network ACLs, and related restart or reapply flows.
95
+
96
+
- Registration Details: Resource-specific details such as device endpoints, credentials, host lists, or interface mappings can be stored on the physical-network registration and updated later through the UI or the ``updateRegisteredExtension`` API.
97
+
98
+
- Network and VPC Custom Actions: Admins can define custom actions for ``Network`` and ``Vpc`` resources when the extension advertises the ``CustomAction`` service.
99
+
100
+
- Reference Implementation: A Linux network namespace based implementation is available in `cloudstack-extensions <https://github.com/apache/cloudstack-extensions/tree/network-namespace/Network-Namespace>`_. This reference backend has been validated with KVM-based smoke tests.
101
+
83
102
84
103
CloudStack provides built-in Orchestrator Extensions for Proxmox, Hyper-V, and MaaS, which work with their respective environments out of the box.
Copy file name to clipboardExpand all lines: source/adminguide/extensions/custom_actions.rst
+27-2Lines changed: 27 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,9 @@
17
17
Custom Actions
18
18
^^^^^^^^^^^^^^
19
19
20
-
In addition to standard instance operations, extensions support custom actions. These can be configured via UI in the extension details view or the addCustomAction API. The extension binary or script must implement handlers for these action names and process any provided parameters.
20
+
In addition to standard lifecycle operations, extensions support custom actions. These can be configured via UI in the extension details view or the addCustomAction API. The extension binary or script must implement handlers for these action names and process any provided parameters.
21
+
22
+
For Orchestrator extensions, custom actions typically target ``VirtualMachine`` resources. For NetworkOrchestrator extensions, custom actions can target ``Network`` and ``Vpc`` resources when the extension advertises the ``CustomAction`` network service.
21
23
22
24
|add-custom-action.png|
23
25
@@ -43,11 +45,34 @@ A single parameter can have the following details:
43
45
44
46
- **valueoptions**: Options for the value of the parameter. This is allowed only for NUMBER and STRING type.
45
47
48
+
Supported Resource Types
49
+
~~~~~~~~~~~~~~~~~~~~~~~~
50
+
51
+
Custom actions can be attached to the following resource types:
52
+
53
+
- ``VirtualMachine`` for Orchestrator extensions.
54
+
55
+
- ``Network`` for NetworkOrchestrator extensions.
56
+
57
+
- ``Vpc`` for NetworkOrchestrator extensions.
58
+
59
+
For network and VPC custom actions, CloudStack dispatches the action to the external provider that serves the ``CustomAction`` service for the selected resource.
60
+
61
+
For ``NetworkOrchestrator`` extensions, the action is executed as ``custom-action`` using the standard payload-file invocation model:
The payload file contains top-level keys such as ``action``, ``action-params``, ``physical-network-extension-details``, and ``network-extension-details``. Unlike other network extension commands, the custom action request does not wrap its command-specific values inside a nested ``payload`` object.
68
+
46
69
47
70
Running Custom Action
48
71
~~~~~~~~~~~~~~~~~~~~~
49
72
50
-
All enabled custom actions can then be triggered for a resource of the type the action is defined for or provided while running, using the **Run Action** view or runCustomAction API.
73
+
All enabled custom actions can then be triggered for a resource of the type the action is defined for or provided while running, using the **Run Action** view or the relevant custom action API.
74
+
75
+
For network and VPC custom actions, CloudStack passes the full request in the payload file and returns the script's ``stdout`` to the caller. The available actions shown in the UI depend on the selected resource type and the extension bound to that resource.
0 commit comments