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

Installing an extension

To install an extension use the CLI:

metalcloud-cli extension create my-workflow workflow "Custom deployment workflow" --definition-source extension.json
┌───┬───────┬─────────────┬────────┬──────────┬────────────────────────────┐
│ # │ LABEL │ NAME        │ STATUS │ KIND     │ DESCRIPTION                │
├───┼───────┼─────────────┼────────┼──────────┼────────────────────────────┤
│ 2 │       │ my-workflow │ draft  │ workflow │ Custom deployment workflow │
└───┴───────┴─────────────┴────────┴──────────┴────────────────────────────┘

The extension is created as draft and is not active until activated. While it is in draft state it can be updated.

The types of extensions (the third param) are:

  • workflow

  • application

Activating an extension

An extension must be active before it can be used. To activate an extension use the CLI:

metalcloud-cli extension publish my-workflow

Note that for workflow extensions the extension must also be made public before it can be used, see below.

Making an extension public

This controls the visibility of the extension:

  • For application extensions, extensions that are not public can be instantiated only by the owners of the extension.

  • For workflow extensions, all extensions must be made public before they can be used.

Archiving the extension

Note that it is not possible to update an extension that is active. To update an extension archive the old one and create a new one. This preserves information about extension instances and other information that might be required for billing purposes.

metalcloud extension archive deprecated-workflow-v1

More information

For more information on building the extensions follow:

  1. Application extensions

  2. Workflow extensions