(I said I was going to file this task a few days ago and forgot, sorry)
Right now we have several different methods for this - wikitech, horizon, the puppet.git repo, each having their own cross-project as well as per-instance type definitions. Ideally there would be only one.
Here's an extract from a long discussion in -cloud-admin a few days ago:
Nov 28 16:01:12 <Krenair> we should determine what our ideal method for managing per-project/instance hiera data for Cloud VPS stuff is Nov 28 16:01:30 <Krenair> that may not be something existing, it may be something new, it may be an improved version of an existing thing Nov 28 16:02:05 <Krenair> if there's an existing one that's close to what we pick, migrate away from that to the new thing and see how we get on Nov 28 16:02:18 <Krenair> then see about migrating the other existing systems into it Nov 28 16:03:08 <gtirloni> seems like a sane approach. first step is crucial :) Nov 28 16:03:14 <bd808> Krenair: agreed. this needs thought before just making another random change Nov 28 16:03:29 <Krenair> right now it sounds to me like the two contenders are: Nov 28 16:03:32 <Krenair> a) the current horizon system with some fixes for performance and version control added in Nov 28 16:03:50 <Krenair> b) new (sort of): per-project gerrit repositories with something syncing keystone role membership into gerrit ACLs
With the per-project gerrit repositories the existing mechanism we'd be replacing is the hieradata/labs directory in operations/puppet.git. If we went down that route we'd probably then look at merging horizon and wikitech data into there and shutting down those mechanisms too.
There's probably several related tasks here, please list as appropriate.