Partners and the Mirantis Unlocked validation program -- Part 2: Fuel Plugins
- Fuel plugin framework: An architecture term meaning that Fuel is designed to allow plugin development that extends its functionality.
- Fuel plugin SDK (Software Development Kit): A set of instruments, practices, documents and tutorials designed to help a developer create Fuel plugins. See https://wiki.openstack.org/wiki/Fuel/Plugins for the current version, and stay tuned for an updated version of the SDK.
Why should you validate your plugin?Any developer interested in expanding Fuel functionality can create a plugin and use it; validation is not necessary. There is a business reason for validation, however. If you want to confirm that your plugin is compatible with a particular version of MOS and publish it to the Fuel plugin catalog on Mirantis’ site, you need to go through the validation process. The greatest benefit here is a high level of trust from Mirantis’ Solution Architects and from Mirantis’ customers. You can read about what the Fuel plugin validation process includes, but let’s spend some time explaining how this process works and why. During Fuel plugin validation, Mirantis acts as a core reviewer. The Fuel plugin SDK says, “Here are the rules for writing, testing, documenting and maintaining plugins.” If you don’t plan to validate your plugin with Mirantis, it’s up to you to follow or not follow those recommendations. But if you plan on taking advantage of validation, these recommendations become requirements you need to meet. The Fuel plugin SDK provides different types of templates (for code, for documents, for CI, etc.), but designing, developing, testing and documenting every unique part of a plugin is a developer’s responsibility. Here's a look at the relative responsibilities of the Fuel plugin developer versus Mirantis:
|Fuel plugin developers are responsible for adequate design and code quality of Fuel plugins they create.||Mirantis will review a Fuel plugin design specification and then will recommend improvements.|
|Fuel plugin developers are responsible for test coverage, test automation and the auto build process.||Mirantis will review your Test Plan, Test Report and your CI design, providing feedback and help if needed.|
|Fuel plugin developers are responsible for creating extensive supporting documentation.||Mirantis will review the User Guide and provide comments.|
|Fuel plugin developers are responsible for releasing a plugin that works and meets customer needs.||Mirantis will run User Acceptance testing and let you know if there are bugs present. Plugins with numerous and critical bugs can’t pass validation and won’t be recommended to customers.|
LimitationsFuel plugin validations cannot guarantee that all plugins will meet all customer use cases. But Mirantis makes sure the plugin works the way it’s described in the User Guide and makes sure all limitations are documented. Sometimes a client-based Mirantis project team faces a situation when a validated plugin does not fully meet customer requirements. It’s completely normal: most Mirantis customers have large installations, and some requirements can be quite exotic, while some plugins have only MVP functionality. In this case, it may be necessary to add features to the plugin, or even to write a new one. In this case, the Mirantis project/deployment team connects with the Fuel plugin’s maintenance team and decides how to proceed.
Fuel plugins and Mirantis OpenStackFuel plugins are not a part of the MOS distribution. They must be downloaded separately from the Mirantis Fuel Plugin Catalog (if a user is interested in a validated plugin). A plugin is a set of puppet manifests performing a set of pre-deployment or post-deployment actions, including package installation. Fuel is open source (as part of OpenStack Big Tent), and developers are advised to keep plugin code open source, too, though packages can be proprietary. For example, the Juniper Contrail Fuel plugin is not open source. (The Fuel community also recommends publishing plugins in DriverLog to keep a record of existing plugins.) So what happens if users want to deploy MOS with Juniper Contrail SDN as a Neutron backend? In this case, they need to download the Fuel plugin from the Mirantis Fuel Plugin Catalog and then buy the Juniper Contrail packages from Juniper. Juniper Contrail bits should be downloaded and stored in a repository from which the Fuel plugin will get them before deployment and configuration.
Other important steps of the validation processAs you may have realized, the Fuel plugin validation is a complex process that comprises several stages. For example, one important step we haven’t mentioned yet is making a demo. The demo serves several purposes:
- It shows the plugin in action
- It provides a knowledge transfer on what the plugin does, how it works and what limitations it has