Hiera optimization: use a new hiera hook
authorDan Prince <dprince@redhat.com>
Tue, 11 Oct 2016 01:09:01 +0000 (21:09 -0400)
committerDan Prince <dprince@redhat.com>
Thu, 1 Dec 2016 03:16:13 +0000 (22:16 -0500)
commit787685101179f13f6074901070cf307bd9bb0731
treea123fe8baca66ce99c2433f19bb120546e8a6c3a
parent9cd0c5a50c45bfce9dabc64aafa3188ba9bdd13c
Hiera optimization: use a new hiera hook

This patch optimizes how we deploy hiera by using a new
heat hook specifically designed to help compose hiera
within heat templates. As part of this change:

 - we update all the 'hiera' software configurations to set the group to hiera
   instead of os-apply-config.

 - The new format uses JSON instead of YAML. The hook actually writes
   out the hiera JSON directly so no conversion takes place. Arrays,
   Strings, Booleans all stay in their native formats. As such we can avoid
   having to do many of the awkward string and list conversions in t-h-t to
   support the previous YAML formatting.

 - The new hook prefers JSON over YAML so upgrading users will have the
   new files prefered. (we will post a cleanup routine for the old files
   soon but this isn't a new behavior, JSON is now simply prefered.)

 - A lot of services required edits to account for default settings that
   worked in YAML that no longer work correctly in the native JSON
   format. In almost all these cases I think the resulting codes looks
   cleaner and is more explicit with regards to what is getting
   configured in hiera on the actual nodes.

Depends-On: I6a383b1ad4ec29458569763bd3f56fd3f2bd726b
Closes-bug: #1596373

Change-Id: Ibe7e2044e200e2c947223286fdf4fd5bcf98c2e1
27 files changed:
puppet/all-nodes-config.yaml
puppet/blockstorage-role.yaml
puppet/cephstorage-role.yaml
puppet/compute-role.yaml
puppet/controller-role.yaml
puppet/objectstorage-role.yaml
puppet/role.role.j2.yaml
puppet/services/aodh-api.yaml
puppet/services/barbican-api.yaml
puppet/services/ceilometer-api.yaml
puppet/services/ceph-base.yaml
puppet/services/cinder-api.yaml
puppet/services/database/mysql.yaml
puppet/services/database/redis-base.yaml
puppet/services/gnocchi-api.yaml
puppet/services/ironic-conductor.yaml
puppet/services/keepalived.yaml
puppet/services/keystone.yaml
puppet/services/neutron-base.yaml
puppet/services/neutron-metadata.yaml
puppet/services/neutron-ovs-agent.yaml
puppet/services/neutron-plugin-ml2.yaml
puppet/services/nova-api.yaml
puppet/services/nova-base.yaml
puppet/services/nova-compute.yaml
puppet/services/pacemaker/database/mysql.yaml
puppet/services/panko-api.yaml