Extensions overview¶
Since v7.0
Extensions are the plug-in mechanism for the MetalSoft platform. It allows 3rd party developers to extend the base functionality of MetalSoft in various ways such as:
Add buttons in the infrastructure editor
Add custom drivers for networking and server deployments
Execute custom code at pre or post-deploy
Integrate with DCIM systems or implement validation scripts
Registering, unregistering and publishing an extension¶
To add an extension use the metalsoft-cli extension
set of commands CLI together with the definition json as described above:
./metalcloud-cli extension
Manage platform extensions including workflows, applications, and actions.
Extensions are modular components that extend the platform's functionality. They can be:
- workflows: Define automated sequences of operations
- applications: Provide custom application deployment logic
- actions: Implement specific operational tasks
Extension lifecycle includes draft, active, and archived states. Only published extensions
become active and available for use across the platform.
Available Commands:
list List and filter extensions
get Retrieve detailed extension information
create Create new extension from definition
update Modify existing extension properties
publish Activate draft extension for platform use
archive Deactivate published extension
Examples:
metalcloud extension list --filter-kind workflow --filter-status active
metalcloud extension create my-workflow workflow "Custom deployment workflow" --definition-source definition.json
metalcloud extension update ext123 "Updated Name" "New description"
metalcloud extension publish ext123
Usage:
metalcloud-cli extension [command]
Aliases:
extension, ext, extensions
Available Commands:
archive Deactivate published extension and make it unavailable
create Create new extension from definition
get Retrieve detailed information about a specific extension
list List and filter platform extensions
publish Activate draft extension for platform use
update Modify existing extension properties and definition
Flags:
-h, --help help for extension
Global Flags:
-k, --api_key string MetalCloud API key
-c, --config string Config file path
-d, --debug Set to enable debug logging
-e, --endpoint string MetalCloud API endpoint
-f, --format string Output format. Supported values are 'text','csv','md','json','yaml'. (default "text")
-i, --insecure_skip_verify Set to allow insecure transport
-l, --log_file string Log file path
-v, --verbosity string Log level verbosity (default "INFO")
Use "metalcloud-cli extension [command] --help" for more information about a command.
Publishing an extensions¶
An admin is required to publish the extension before it can be used by other users. This helps prevent accidental usage of an extension before it has been fully developed.
Archiving the extension¶
Note that it is not possible to delete an extension. Admins can instead archive it. This preserves information about extension instances
and other information that might be required for billing purposes.
Additionally a series of commands are provided to manipulate extension instances which are instances of the extension, deployed by users.
Extension types:¶
Currently the following extension types are supported: