.. _plugin-cert: Fuel plug-ins certification =========================== Certified and Non-Certified plug-ins ------------------------------------ Plug-ins come into two categories: Certified and Non-Certified. For information on Certified and Non-Certified plug-ins certification requirements, see :ref:`Plug-in certification requirements`. For instructions on creating your own plug-in, see :ref:`020-fuel-plugin-dev`. For instructions on installing a plug-in, see :ref:`040-install-plugin`. For instructions on building your plug-in, see :ref:`How To Build your Plug-in`. .. _plugins-storage: Plug-ins storage ---------------- Plug-ins are kept in a special file storage, so that you can download them from ``_ and install. Plug-ins development requirements --------------------------------- Plug-ins must meet a set of development requirements. Once a provided plug-in does not satisfy any of them, Mirantis cannot accept it and publish into the Catalog. When you plan to develop a plug-in for Fuel, take the following requirements into consideration: * Plug-in should be written on Python. * Deb and rpm packages must contain their dependencies. For instructions on creating packages, see `Fedora project wiki `_ and `Ubuntu Packaging Guide `_. * Puppet manifests should be written according to the `Official OpenStack documentation `_. For good code examples and workflow, see `Puppet in OpenStack `_. * It is strongly not recommended to use bash scripts. .. _plug-in-cert: Plug-ins certification requirements ----------------------------------- Certified and Non-Certified plug-ins have a set of requirements. .. _non-certified: Non-Certified +++++++++++++ Non-Certified plug-in should satisfy the following requirements: * Built plug-in or download link is provided * Plug-in purpose is specified: for example, Compute, Storage, Network, Operations * Basic description of plug-in functionality (specification) is provided * Plug-in developer contact information (company, support contacts) is provided Non-Certified plug-in must also have the following set of documentation: * Plug-in Installation Guide in .pdf format * Plug-in User Guide in .pdf format (for templates, see :ref:`plugin-doc-template`) * Test Plan and Test Report in .pdf format (for templates, see :ref:`test-plan-report`) .. _certified: Certified +++++++++ Certified plug-ins are those that passed :ref:`Non-Certified` phase. The main difference between Non-Certified and Certified plug-ins is that the latter are tested by the Fuel QA team more thoroughly to verify that plug-in can be enabled in Fuel without any harm. If a Non-Certified plug-in susccessfully passes all tests, it is moved to the appropriate directory of the :ref:`Plug-ins storage` and signed by Mirantis `GPG `_ key. .. include:: /pages/plugin-dev/plugin-doc-template.rst .. include:: /pages/plugin-dev/test-plan-report.rst .. _how-to-push: How to upload your plug-in into Mirantis OpenStack Catalog ========================================================== It is not important where to host the plug-in code. Nevertheless, to enable CI tests it is recommended to publish plug-ins into separate repositories of the `Stackforge `_ project. Currently, plug-ins created by Mirantis developers are kept in the following repos: * `Stackforge plug-ins `_ - used for plug-ins developed by Fuel Core team. * `Mirantis plug-ins `_ - used for plug-ins developed by Partner Integrations and MOS teams. Note that the plug-ins will also be moved to separate repos in Stackforge. A contributor should only build the plug-in as described in :ref:`instructions on building a plug-in` and send it to *fuel-plugin@mirantis.com*. The email should contain the following information: * Type of the plug-in * Set of required documents, described in :ref:`Non-Certified` and :ref:`Certified` sections. After receiving the email, Partner Integration team starts :ref:`Plug-in acceptance workflow`. .. _plug-in-accept-workflow: Plug-in acceptance workflow --------------------------- .. _non-certified-plug-in-workflow: Non-Certified plug-in acceptance workflow +++++++++++++++++++++++++++++++++++++++++ The workflow for Non-Certified plug-ins consists of the following steps: #. Plug-in that satisfies :ref:`Non-Certified` plug-ins certification requirements, goes through a set of tests. Fuel QA team confirms it. #. Fuel Documentation team verifies that all necessary documents are provided according to :ref:`Documentation template`. #. After Fuel QA and Documentation teams provide their confirmation, responsible person from Partner Integration team adds or replaces the plug-in with its User Guide into Non-Certified plug-ins directory of the :ref:`Plug-ins storage`. .. _certified-plug-in-workflow: Certified plug-ins acceptance workflow ++++++++++++++++++++++++++++++++++++++ The workflow for plug-ins certification consists of the following steps: #. A plug-in should pass :ref:`Non-Certified plug-in acceptance workflow`. #. Fuel Core, PI and MOS teams developers review the code, try to check architecture, security and performance issues of the provided plug-in. #. Fuel QA team tests plug-in according to the extended test cases. Additional test cases should be provided in the contributor's testing instruction. #. After Fuel QA, Core, MOS and Documentation teams confirm that plug-in can be moved to Verified, responsible person from Partner Integration team pushes the plug-in with its documentation into the Certified directory of the :ref:`Plug-ins storage`. .. include:: /pages/plugin-dev/050-support.rst