[...]
I'm not sure if this is useful but what the Infra team did was to transplant all of its hiera data into /etc/ansible/hosts/host_vars and /etc/ansible/hosts/group_vars. Then we updated our puppetry to pull hiera data out of there. This means that puppet and ansible read the same data sources which has made transitioning things easy for us.
Yes this is useful to know, thanks for sharing.
In our case, we are not so worried about the source of data (it can be anywhere really); but our challenge is how we manage the data in our Heat templates and how the way it is exposed to our end-users will remain backward compatible.
Example:
Right now, if you want to override parameter DEFAULT/foo in Glance API config file you would do:
ControllerExtraConfig:
glance::config::glance_api_config:
DEFAULT/foo:
value: bar
With the new interface proposal it would be:
ControllerExtraConfig:
glance_api_config:
DEFAULT:
foo: bar
And the second challenge here is to maintain the hierarchies that we have between layers of configuration (per service, per role, per nodes, etc), knowing that Heat doesn't have a hash deep_merge function (yet) AFIK (happy to be corrected here).
I think we can try to keep hiera now (which provides a nice way to do parameters hierarchy) and keep the focus on stop using the Puppet OpenStack modules logic, just build a new interface which directly lays down the configuration (with Puppet now but something else later).