Common OpenStack Configuration Provider

https://blueprints.launchpad.net/puppet-openstacklib/+spec/common-openstack-configuration-provider

This spec is about introducing a common configuration provider based on the ini_setting provider from puppetlabs-inifile. Other configuration providers would now inherit from this provider instead.

Problem description

All puppet modules for OpenStack uses the ini_setting provider as their grounds for their specialized version.

Recent work has been started to implement a secret parameter where changes for a specific configuration value would be hidden from Puppet logs. This work is and will be duplicated across all the specialized providers, violating the DRY concept.

Proposed change

Introduce a common configuration provider which could be used by other specialized configuration providers. This common provider would provide a basic set of features. Example of such features are the secret parameter and the capitalization of boolean values.

Alternatives

Without this proposition, we should have to continue using the ini_setting provider as the base of our specialized configuration providers and implement/copy features in each of them.

We could also try proposing our features and changes to upstream so we don’t have to maintain them anymore. Those changes might however not fit the vision of upstream, like the capitalization of boolean values.

Data model impact

None

Module API impact

This proposition does not include any change to any module API.

End user impact

None

Performance Impact

None

Deployer impact

This proposition introduces a new mandatory dependency on openstacklib.

Those deploying from the master branch and/or using Puppetfile would need to install the openstacklib puppet module.

Developer impact

None

Implementation

Assignee(s)

Primary assignee:

mgagne

Other contributors:

None

Work Items

  • Create openstack_ini_setting provider

  • Refactor the existing configuration providers to use openstack_ini_setting.

Dependencies

None

Testing

  • Unit test fixtures of all puppet modules would need to be updated to install openstacklib.

Documentation Impact

None

References

None