Upgrading BOSH
You can find new releases of BOSH in the BOSH repository. Once you have decided on which version to use, carry out the following steps:
In cloudfoundry/bosh-deployment, identify the commit that uses the version of BOSH you want to upgrade to. You can do this by checking the releases in the
bosh.yml
. For example, the following snippet from bosh.yml uses version273.1.0
of BOSH:- name: bosh sha1: f9f7d13df4384c0562e1fd31431053d705326f64 url: https://s3.amazonaws.com/bosh-compiled-release-tarballs/bosh-273.1.0-ubuntu-jammy-1.8-20220822-191956-046681798-20220822191957.tgz version: 273.1.0
The corresponding commit is
959ed4a6a9b2739be14dd37b1ff45626892215af
.Update the submodule
upstream
in alphagov/paas-bootstrap/manifests/bosh-manifest to point to the commit identified in the previous step.Determine if you need to make any other changes to ops files, based on the release changes.
Testing the upgrade
You should test the changes in a development environment by doing the following:
Claim one of the team development environments (
dev01
,dev02
ordev03
) by sending a message to the #paas-internal channel on GDS Slack, tagging @paas-devs.Make sure the current branch of
paas-bootstrap
deployed by thecreate-bosh-concourse
pipeline to the environment ismain
and has been run with the latest commit. If not, do it yourself:gds aws paas-dev-admin -- make dev01 deployer-concourse pipelines BRANCH=main
Pause the
create-cloudfoundry
pipeline in the dev environment.Update the
create-bosh-concourse
pipeline to deploy yourpaas-bootstrap
branch to the dev environment. You can update it by running:gds aws paas-dev-admin -- make dev01 deployer-concourse pipelines BRANCH=UPGRADE_BRANCH_NAME
where
UPGRADE_BRANCH_NAME
is the name of the branch you created for the upgrade.The
concourse-deploy
job may fail because Concourse rolls itself. If this happens, you will need to trigger a new build for theconcourse-deploy
job.When the
create-bosh-concourse
pipeline finishes, run thecreate-cloudfoundry
pipeline. Make sure you use themain
branch ofpaas-cf
.
Checking credential rotation
Carry out the following steps to make sure our process for rotating credentials continues to work:
- Run the
test-certificate-rotation
Concourse pipeline. - Rotate the BOSH credentials and certificates.
- Rotate the broker credentials.
Merging the upgrade
If the previous steps succeed, you can open a PR for review. Once it has been approved, do the following:
Tell people you will be upgrading BOSH and pausing the
create-cloudfoundry
pipelines by sending a message to the #paas-internal channel on GDS Slack, tagging @paas-devs.Make sure nothing is being deployed and pause the
create-cloudfoundry
pipeline instaging
,prod
andprod-lon
. You can do this by pausing thepipeline-lock
job for each environment in Concourse.Merge-sign the PR. The gds-cli has a useful utility for this:
gds git merge-sign alphagov/paas-cf <PR_NUMBER>
Trigger the
create-bosh-concourse
pipeline instaging
. You can do this by triggering a new build of theinit-bucket
job in Concourse. When it finishes, do the same for theprod
andprod-lon
pipelines.Unpause all the
create-cloudfoundry
pipelines.