Skip to content

Troubleshooting

Missing variables interpolated by Credhub now error

Many Concourse operators use tools like Credhub for centralized credential management for their Concourse instances. In the concourse-bosh-deployment repository referenced in these upgrade guides, there are various examples where variables are used as placeholders which are meant to be replaced at deployment time. In the past, you could use these values as-is without specifying variables, and Credhub would seamlessly take over to interpolate anything that's missing at the time of deployment.

For example, if foo is a key in Credhub, an operator would need to pass ((foo)) to BOSH without interpolating some value for foo first. This results in something like this in your pipeline.yml:

1
2
3
4
5
put: some-bosh-deployment
params:
  ...
  vars:
    secret: "((/bosh-name/group/foo))"

In v5.x.x, this scenario will fail with an error message stating that BOSH cannot find the variable /bosh-name/cf/cf_admin_password. To fix this, move the variable into a variables file:

1
2
---
secret: "((/bosh-name/group/foo))"

This strategy allows us to pass the variable ((/bosh-name/group/foo)) literally to the BOSH deployment. This way, it can be Credhub-managed within the foundation you're deploying.