[openstack-dev] [Fuel] Hiera implementation

Aleksandr Didenko adidenko at mirantis.com
Wed Oct 15 09:17:12 UTC 2014


Hi,

there is a blueprint about Hiera implementation in Fuel [1] and some
additional info plus notes [2]. So as the first step I suggest to simply
configure Hiera on Fuel master node and OS nodes before the first puppet
run and merge this into master branch. This will allow manifests developers
to start using Hiera in their modules/classes.

But we need to come up with solutions for some key moments before we can
proceed:

1) Where to ship main hiera.yaml config file?
2) What Hiera :hierarchy: should we use?
3) Where to ship hieradata yamls for fuel-library modules/classes?
4) Anything else I forgot to mention?

We should also take into account MOS versioning scheme we currently use for
puppet manifests and modules.

My suggestions:

1) We should ship hiera.yaml with our "osnailyfacter" module under
"fuel-library" project, like we do with main "site.pp". So we can put
config in "deployment/puppet/osnailyfacter/examples/hiera.yaml" file and
symlink /etc/puppet/hiera.yaml to it [3]. This solution will support MOS
versioning, because our modules are (will be) stored in version based
directories.

2) We could use something like [4]:

   -  /etc/astute.yaml - is used as default if nothing was found
   -  /etc/puppet/hieradata/default/ - is shipped with fuel-library
   -  /etc/puppet/hieradata/override/ - allows ops team to override needed
   settings on per fact, class or module basis

In this case we'll also have to add /etc/puppet/hieradata/ into our puppet
manifests/modules versioning scheme. Maybe an easier solution would be
putting "hieradata" under some directory which is already versioned, for
example under /etc/fuel/6.0 ? But in this case we need to either introduce
new fact like $fuel_version and use it in Hiera :hierarchy: or setup a
symlink like /etc/fuel/current -> /etc/fuel/6.0

3) Add new directory in fuel-library (for example "hieradata") that will be
extracted into "/etc/puppet/hieradata/default". This will allow puppet
manifest developers to add needed hiera settings along with their modules:


   - fuel-library/deployment/puppet/*my_new_module/* - puppet module
   - fuel-library/deployment/hieradata/module/*my_new_module.yaml* - hiera
   data for the module

Your input/comments are welcome and appreciated :)

[1] https://blueprints.launchpad.net/fuel/+spec/replace-parseyaml-with-hiera
[2] https://etherpad.openstack.org/p/fuel_hiera
[3] https://review.openstack.org/#/c/126559/
[4] http://pastebin.com/HH0bUtYc

Regards,
Aleksandr Didenko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141015/fb44704e/attachment-0001.html>


More information about the OpenStack-dev mailing list