Skip to content

Introducing a New Required Property to Cloud Controller's Bosh Spec without Breaking Deployments

Tim Downey edited this page Sep 24, 2017 · 1 revision

When adding a new required property to one of the Bosh specs in Cloud Controller (or any of the jobs in capi-release for matter), you will need to submit a pull request to both cf-deployment and cf-release. Make sure you communicate that the property is required (Rel-Int will need to mention this in the release notes for cf-release) and note which version of capi-release will use the new property.

If the new property is committed and pushed to master prior to when those pull requests are merged, deployments of the latest Cloud Controller code will fail with errors like the following:

Task 195560 | 23:03:11 | Error: Unable to render instance groups for deployment. Errors are:
  - Unable to render jobs for instance group 'api'. Errors are:
    - Unable to render templates for job 'cloud_controller_ng'. Errors are:
      - Error filling in template 'cloud_controller_ng.yml.erb' (line 299: Can't find property '["uaa.clients.cc_service_key_client.secret"]')

There's several ways around this, but after discussing it with the Release Integration team, the preferred approaches are:

  1. If the work is not time sensitive, wait for the pull requests to be merged prior to committing and pushing the spec file and job template changes.

or

  1. Create a temporary ops-file in the capi-ci repo that adds the new required properties to cf-deployment for use within CAPI's pipelines. Just be sure to block the Tracker story on the two PRs and wait for them to be merged before accepting the story.
Clone this wiki locally