Lots of messiness (such as the base::puppet vs puppet vs puppetmaster) one can not easily be fixed in labs due to the fact that prod has role based hiera lookups and labs does not. This needs to be fixed.
Production has a lot of settings under hiera /hieradata/role/* which are not looked up on labs project. Found that while looking at:
- T136077: deployment-cache-upload04/text04 Could not find data item cache::cluster in hiera no default supplied at /etc/puppet/modules/role/manifests/cache/base.pp:17
- T136078: On beta nutcracker::verbosity default to 5 while prod uses 4, fills disk with a lot of log spam
Examples:
hieradata/role/common/mediawiki/appserver.yaml:17:nutcracker::verbosity: "4" hieradata/role/common/cache/text.yaml:2:cache::cluster: text
The reason are the production vs labs hierarchy being different, the labs one does not have a role_hierarchy:
production
./modules/puppetmaster/files/production.hiera.yaml
:hierarchy: - "hosts/%{::hostname}" - "regex/%{::fqdn}" - "%{::site}/%{::realm}" - "%{::site}" - "private/%{::site}/%{::realm}" - "private/%{::site}" - "common" - "private/common" :role_hierarchy: - "%{::site}" - "common" - "private/%{::site}" - "private/common"
labs
./modules/puppetmaster/files/labs.hiera.yaml
:hierarchy: - "labs/hosts/%{::hostname}" - "labs/%{::labsproject}/host/%{::hostname}" - "labs/%{::labsproject}/common" - "labs" - "secret/%{::labsproject}" - "private/%{::labsproject}" - common - "secret/common" - "private/common"
That apparently got introduced in May 2015 with 196fd9dbbaa7fb26305b94b53caa3dc6990efad0