← Back to team overview

fuel-dev team mailing list archive

Fuel plugin ideas

 

Hello folks,
recently I've refactored integration of Neutron Nicira NSX plugin
installation into fuel library (https://review.openstack.org/#/c/64002/).
All modifications are gathered into one puppet module.
I have some thoughts on implementation of plugin system in Fuel library

   1. Each plugin has to be implemented as a separate module. Init manifest
   withouta input parameters (init.pp) should be used as an entry point to
   each plugin.
   2. All parameters for plugin should be kept in astute.yaml
   3. Plugin naming convention should be developed.
   4. Function which automatically loads each plugin (e.g. it should
   execute init manifest of each class with name mask "plugin_.*") is required.
   5. Staging system should be implemented. All plugins have to be executed
   in a separate stage (e.g. Stage['main'] -> stage {'plugins':} )
   6. Each puppet class which is used with library has to have the ability
   to be disabled from plugin
   This is necessary because plugins may require to disable some services.
   Alternatively this can be implemented by using resource collections (e.g.
   Service <| title == l3-agent|> { noop => true }) but we can't execute
   plugin in a separate stage in this case.

What do you think on this? I'd like hear a feedback on my ideas and module
implementation.
Thank you in advance.

-- 
Kind regards
Dmitry Ukov
IT Engineer
Mirantis, Inc.

Follow ups