Fuel Plugin Development Overview
SIMPLIFY DEPLOYMENT OF YOUR SOLUTION WITH MIRANTIS OPENSTACK
Fuel — the open-source deployment and lifecycle management engine — makes Mirantis OpenStack easy for customers to deploy in optimal configurations on a wide range of generic x86 compute/storage and network hardware. Fuel’s pluggable architecture lets you extend Fuel’s web UI and harness its deployment tools to enable auto-discovery of your specific compute, storage, network or operations solution, permit point-and-click configuration, and deploy driver and related software support for your solution alongside OpenStack.
Fuel plugins can be composed in a range of languages (Python is preferred, but not required). Fuel plugin architecture is simple and open-standards-based: a plugin comprises a code skeleton, structured manifest files for Puppet, and related deb or rpm packages. Plug-ins are versioned (major and minor versions), and can be upgraded on the Fuel Master Node using yum.
Fuel plugins for Mirantis OpenStack are composed with respect to specific Mirantis OpenStack deployment reference architectures and on execution, gain access to node, role and other information aggregated pre-deployment by Fuel via auto-discovery and user input. The main requirement of plugin code is that it be idempotent: producing a desired end-state that doesn’t change despite multiple invocations.
While developers are free to determine where to host Fuel plugin project files, Mirantis provides a detailed, recommended workflow (based on OpenStack’s CI/CD workflow and toolchain) where sources are hosted on StackForge, reviewed with Gerrit, and gated by Jenkins.Fuel Plugin Developer Guide