Description
The terraform-aws-actions-runner module sets puppet_role: gha_runner as a facter fact, but puppet-code has no corresponding hiera data file data/gha_runner.yaml. This causes Puppet to fail with:
Error: Function lookup() did not find a value for the name 'classes'
Root Cause
The hiera config at environments/sandbox/hiera.yaml looks up data by role:
hierarchy:
- name: "Per role data"
path: "%{::puppet_role}.yaml"
With puppet_role: gha_runner, it looks for data/gha_runner.yaml — but that file doesn't exist. Other roles have their data files (jumphost.yaml, webserver.yaml, bookstack.yaml, etc.), but gha_runner is missing.
The role::github_runner class and manifests exist in modules/role/manifests/github_runner.pp, but there's no hiera data to wire it up.
Fix
Add environments/sandbox/data/gha_runner.yaml with at minimum the classes key, similar to other role data files. For example:
---
classes:
- role::github_runner
Impact
Any user of terraform-aws-actions-runner that relies on the default puppet_hiera_config_path (i.e., the built-in puppet-code) will hit this error. Currently masked in module tests because they override puppet_hiera_config_path to point at infrahouse-puppet-data.
Description
The
terraform-aws-actions-runnermodule setspuppet_role: gha_runneras a facter fact, butpuppet-codehas no corresponding hiera data filedata/gha_runner.yaml. This causes Puppet to fail with:Root Cause
The hiera config at
environments/sandbox/hiera.yamllooks up data by role:With
puppet_role: gha_runner, it looks fordata/gha_runner.yaml— but that file doesn't exist. Other roles have their data files (jumphost.yaml,webserver.yaml,bookstack.yaml, etc.), butgha_runneris missing.The
role::github_runnerclass and manifests exist inmodules/role/manifests/github_runner.pp, but there's no hiera data to wire it up.Fix
Add
environments/sandbox/data/gha_runner.yamlwith at minimum theclasseskey, similar to other role data files. For example:Impact
Any user of
terraform-aws-actions-runnerthat relies on the defaultpuppet_hiera_config_path(i.e., the built-in puppet-code) will hit this error. Currently masked in module tests because they overridepuppet_hiera_config_pathto point atinfrahouse-puppet-data.