|
| 1 | +# Creating a new stemcell line |
| 2 | + |
| 3 | +### Creating the new stemcells: |
| 4 | +1. Get on the current `HEAD` of `bosh-linux-stemcell-builder/master`. |
| 5 | +1. Bump agent and blobstore clients (currently davcli, s3cli, gcscli - see Further References) to their latest versions on `master` |
| 6 | +1. Bump os-images for `master`. |
| 7 | +1. Build a stemcell in the `bosh:stemcells` pipeline, inform DK when it's passed CI so that he can publish it. |
| 8 | + |
| 9 | + |
| 10 | +### Cutting the pipelines: |
| 11 | +*Below, replace `9999.x` with the stemcell version that was published from master pipeline.* |
| 12 | + |
| 13 | +#### Stemcells and OS Images |
| 14 | +1. Create a new branch in `bosh-linux-stemcell-builder` named `9999.x` |
| 15 | +1. Using the version of the published stemcell, create a new lastpass note for that stemcell line (include version in the name, see pre-existing notes) |
| 16 | + 1. Change the `stemcell_branch` value to `9999.x`. |
| 17 | + 1. Change the `stemcell_version_key` value to `bosh-stemcell/version-9999.x` |
| 18 | + 1. Change the `stemcell_version_semver_bump` value to `minor` |
| 19 | + 1. Disregard: ~~Change the `fly` command to refer to the `9999.x` branch, `9999.x` note, and `9999.x` pipeline (or delete that command, we have configure scripts).~~ *Moved to configure.sh* |
| 20 | +1. Create a new note for `concourse:production pipeline:os-images:9999.x` - copy & paste the previous branch `concourse:production pipeline:os-images` into a new secure note, in Shared Folder "Shared-BOSH Core (Pivotal Only)". |
| 21 | + 1. Update the `branch` value. |
| 22 | +1. Update the `configure.sh` scripts to create `bosh:os-image:9999.x` and `bosh:stemcell:9999.x` pipelines, using the note(s) for 9999.x. |
| 23 | +1. Log in to the `bosh core os images stemcells` AWS account. Go into the `bosh-core-stemcells-candidate` bucket, then the `bosh-stemcell` folder. |
| 24 | +1. Locally, `echo -n 9999.0.0 > version-9999.x`. Upload that file. (We do this because the file cannot contain newlines.) |
| 25 | +1. Push changes to the branch. |
| 26 | +1. Run the configure scripts: `ci/configure.sh` & `ci/os-images/configure.sh` |
| 27 | + 1. That creates os-image and stemcell pipelines; check them to make sure that they're pointing to the right repos, branches, and version file. |
| 28 | + 2. You can unpause those pipelines. `stemcells:9999.x` will kick off a build. |
| 29 | + |
| 30 | +#### Bosh-Agent |
| 31 | +*Below, replace `A.B.x` with the agent version that was shipped with the new stemcells, which can be found in `stemcell_builder/stages/bosh_go_agent/apply.sh`* |
| 32 | + |
| 33 | +##### Agent versioning details |
| 34 | +* No pipeline bumps the major version. |
| 35 | +* The bosh-agent pipeline (which pulls from `develop`) bumps the minor version - A.*B*.x. |
| 36 | +* The bosh-agent:A.B.x pipeline (which pulls from branch `A.B.x`) will bump the *patch* - A.B.*1*, .2, etc. |
| 37 | + |
| 38 | +##### Creating the pipeline |
| 39 | +1. Create a new agent branch `A.B.x` (replace with the agent version that was used in the 9999.x stemcell) |
| 40 | +1. Copy the pipeline YAML and configure.sh scripts from the previous agent patch branch. |
| 41 | +1. In configure.sh, update the pipeline name and `--var` flags. |
| 42 | +1. Create a new agent pipeline titled `bosh-agent:A.B.x`. |
| 43 | + |
| 44 | +### Further references |
| 45 | +* [spreadsheet with context, links, and directions](https://docs.google.com/spreadsheets/d/11LgvmuR-XxXpKB-UVi91FL0nkITGhoB-G1NHPwfnweo/edit#gid=0) - not open to everyone, probably |
| 46 | +* [BOSH DavCLI Repo](https://github.com/cloudfoundry/bosh-davcli) |
| 47 | +* [BOSH S3CLI Repo](https://github.com/cloudfoundry/bosh-s3cli) |
| 48 | +* [BOSH GCSCLI Repo](https://github.com/cloudfoundry/bosh-gcscli) |
0 commit comments