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:

  1. Add buttons in the infrastructure editor

  2. Add custom drivers for networking and server deployments

  3. Execute custom code at pre or post-deploy

  4. 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:

  1. Application extensions

  2. Workflow extensions