This library provides a common framework for extending the Morpheus Ops Orchestration Tool. This includes providing plugin extensions for adding various integrations such as Cloud Integrations, Service Level Integrations or Providers for things like DNS, IPAM, Config Management, UI Extensions, Etc.
The plugin architecture requires Morpheus 5 or later.
Ensure you are using a version of the plugin that is compatible with your version of Morpheus. See the releases tab for more info.
The plugin API is published to Maven Central, include it in your gradle project:
dependencies {
compileOnly 'com.morpheusdata:morpheus-plugin-api:1.1.1'
}
Please refer to the official documentation for more up to date guides on how to create a plugin.
Create and implement the Plugin
class.
Plugins are packaged by using the shadowJar
gradle task. This task bundles all dependencies required for the plugin.
A jar manifest must also be created to tell the PluginManager which class to load for the plugin. For example:
build.gradle
jar {
manifest {
attributes(
'Plugin-Class': 'com.morpheusdata.infoblox.InfobloxPlugin',
'Plugin-Version': version
)
}
}
Dependancies your plugin requires such as other clouds sdks or similar will be scoped to your plugins classpath. The PluginManager
creates a new classpath for each plugin loaded. This is done to ensure classes in a plugin do not interfere with Morpheus or other loaded plugins.