└─ trunk
└─ hiera
└─ Dev
└─ web-dev-node01.yaml
└─ web-dev-node01.eyaml
└─ QA
└─ web-qa-node01.yaml
└─ web-qa-node01.eyaml
└─ Prod
└─ web-prod-node01.yaml
└─ web-prod-node01.eyaml
└─ modules
└─ tags
└─ release_1.0
└─ hiera
└─ Dev
└─ QA
└─ Prod
└─ modules
└─ release_2.0
As you all can imagine, this gets quite messy when the hiera code gets promoted through the environments with different .yaml file names or even when the code is tagged from trunk. In the latter scenario, if the variables are not sorted out for all environments first time, new releases need to be created, wasting space and leaving the repository quite cluttered...
I think the solution comes down to take the hiera code out of trunk, but no sure where I should place it instead.
Another approach would be to create another trunk for hiera, but to sure how effective this would be going forward:
└─ trunk-hiera
└─ Dev
└─ QA
└─ trunk-modules
What do you guys think? how do you have this implemented in your environments?
Thanks in advance