```
ERR: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration: File[/usr/bin/scap] is already declared at (file: /etc/puppet/modules/scap/manifests/init.pp, line: 45); cannot redeclare (file: /etc/puppet/modules/scap/manifests/master.pp, line: 69) (file: /etc/puppet/modules/scap/manifests/master.pp, line: 69, column: 5) on node deploy-1004.devtools.eqiad1.wikimedia.cloud
```
operations/puppet/modules/scap/manifests/init.pp defines `class scap` which will define the /usr/bin/scap file resource if $is_master is false.
operations/puppet/modules/scap/manifests/master.pp defines `class scap::master` which unconditionally defines the /usr/bin/scap file resource.
operations/puppet/modules/profile/manifests/mediawiki/scap_client.pp defines `class profile::mediawiki::scap_client` which has parameter `$is_master=lookup('profile::mediawiki::scap_client::is_master')`.
deploy-1004.devtools.eqiad1.wikimedia.cloud has role `role::deployment_server`.
Grepping through operations/puppet for `profile::mediawiki::scap_client::is_master`:
```
./modules/profile/manifests/mediawiki/scap_client.pp:8: Boolean $is_master = lookup('profile::mediawiki::scap_client::is_master')
./hieradata/cloud/eqiad1/deployment-prep/hosts/deployment-deploy03.yaml:1:profile::mediawiki::scap_client::is_master: true
./hieradata/cloud.yaml:335:profile::mediawiki::scap_client::is_master: false
./hieradata/role/common/deployment_server/kubernetes.yaml:128:profile::mediawiki::scap_client::is_master: true
./hieradata/common/profile/mediawiki/scap_client.yaml:1:profile::mediawiki::scap_client::is_master: false
```
Since deployment servers are by definition scap masters I attempted to add `profile::mediawiki::scap_client::is_master: true` to `./hieradata/role/common/deployment_server.yaml`, but that didn't take effect in WMCS because role-based hiera lookup does not work there (T120165). Disappointing.
I know I can add a one-off hiera value using the horizon UI, or by adding a file like `./hieradata/cloud/eqiad1/devtools/hosts/deploy-1004.yaml`, however I want to do something that fixes this in a way that makes the deployment_server role usable in an intuitive way in the future without surprising extra steps being needed. I want to replace `$is_master=lookup('profile::mediawiki::scap_client::is_master')` with something like `$is_master = <current node has the deployment_server role>`. Is there a way to achieve this in puppet?