Looking at:
https://phabricator.wikimedia.org/diffusion/OPUP/browse/production/hieradata/common/cxserver.yaml
it seems that this file has become somewhat unyieldy. ops have only a vague clue about what lines 2-633 do but have to routinely merge changes to this file. The yaml block format used is also quite unreadable at this size. The inline format would already make this file way more readable and reduce the likelihood of errors, but an unnecessary request to ops and a need to for some coordination to routinely merge changes in this file would still exist.
My suggestion would be to go the parsoid way and move such configuration into the cxserver repo. It would mean various small changes both in cxserver code and in puppet code but it would decouple the puppet repo (and ops) from non infrastructure critical configuration changes. That being said, there are parts like logstash configuration that should stay in the puppet repo.