Skip to content

Commit 5c1e73a

Browse files
author
Vaughn Dice
authored
Merge pull request #329 from vdice/return-to-immutable
docs(release_checklist.md): return to using immutable tags
2 parents a0850fd + b451c66 commit 5c1e73a

1 file changed

Lines changed: 29 additions & 46 deletions

File tree

src/roadmap/release-checklist.md

Lines changed: 29 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -38,25 +38,21 @@ be in a new directory called `workflow-v2.0.0`.
3838

3939
# Step 1: Cut repo branches and push image tags
4040

41-
1. Once the release milestone is cleared of tickets in the workflow component repos, the release branches can be cut.
41+
Once the release milestone is cleared of tickets in the workflow component repos, the release branches can be cut.
4242

43-
If only a particular repo is ready, navigate to said repo and:
43+
If only a particular repo is ready, navigate to said repo and:
4444

45-
git checkout master && git pull upstream master
46-
git checkout -b release-$WORKFLOW_RELEASE && git push upstream release-$WORKFLOW_RELEASE
45+
git checkout master && git pull upstream master
46+
git checkout -b release-$WORKFLOW_RELEASE && git push upstream release-$WORKFLOW_RELEASE
4747

48-
Otherwise, for bulk-cutting all repos at the same time, we will use [sgoings/deis-workflow-group](https://github.com/sgoings/deis-workflow-group) here and in Step 2 below:
48+
Otherwise, for bulk-cutting all repos at the same time, we will use [sgoings/deis-workflow-group](https://github.com/sgoings/deis-workflow-group) here and in Step 2 below:
4949

50-
git clone git@github.com:sgoings/deis-workflow-group.git
51-
cd deis-workflow-group
50+
git clone git@github.com:sgoings/deis-workflow-group.git
51+
cd deis-workflow-group
5252

53-
make git-update # point all repos to latest master commits
54-
BRANCH="release-${WORKFLOW_RELEASE}" NEW="true" make git-checkout-branch
55-
BRANCH="release-${WORKFLOW_RELEASE}" make git-push-branch #(can use DRY_RUN=true)
56-
57-
2. Tag and push docker images to 'staging' `deisci` org
58-
59-
TAG="${WORKFLOW_RELEASE}" ORG="deisci" make docker-tag docker-push #(can use DRY_RUN=true)
53+
make git-update # point all repos to latest master commits
54+
BRANCH="release-${WORKFLOW_RELEASE}" NEW="true" make git-checkout-branch
55+
BRANCH="release-${WORKFLOW_RELEASE}" make git-push-branch #(can use DRY_RUN=true)
6056

6157
# Step 2: Create New Helm Classic Charts
6258

@@ -76,11 +72,11 @@ version of our release for testing. Here is the current process to do so:
7672
cp -r workflow-dev-e2e workflow-$WORKFLOW_RELEASE_SHORT-e2e
7773
cp -r router-dev router-$WORKFLOW_RELEASE_SHORT
7874

79-
4. Stage copies of all files needing release updates into the appropriate `workflow-$WORKFLOW_RELEASE_SHORT(-e2e)` chart directories:
75+
4. Stage copies of all files needing release updates into the appropriate chart directories created above, supplying `--ref release-$WORKFLOW_RELEASE` to specify this branch/ref for lookup of latest commit shas (informing `generate_params.toml`), as well as `--stagingDir <appropriate staging dir>` to inform `deisrel` where to put updated files:
8076

81-
deisrel helm-stage --tag $WORKFLOW_RELEASE --stagingDir workflow-$WORKFLOW_RELEASE_SHORT workflow
82-
deisrel helm-stage --tag $WORKFLOW_RELEASE --stagingDir workflow-$WORKFLOW_RELEASE_SHORT-e2e e2e
83-
deisrel helm-stage --tag $WORKFLOW_RELEASE --stagingDir router-$WORKFLOW_RELEASE_SHORT router
77+
deisrel helm-stage --ref release-$WORKFLOW_RELEASE --stagingDir workflow-$WORKFLOW_RELEASE_SHORT workflow
78+
deisrel helm-stage --ref release-$WORKFLOW_RELEASE --stagingDir workflow-$WORKFLOW_RELEASE_SHORT-e2e e2e
79+
deisrel helm-stage --ref release-$WORKFLOW_RELEASE --stagingDir router-$WORKFLOW_RELEASE_SHORT router
8480

8581
5. Delete the `KUBERNETES_POD_TERMINATION_GRACE_PERIOD_SECONDS` env var from `workflow-$WORKFLOW_RELEASE_SHORT/tpl/deis-controller-rc.yaml`
8682

@@ -146,42 +142,29 @@ Amazon S3 |
146142

147143
- PR the fix, get it reviewed and merged into master of component repo(s)
148144
- git cherry-pick <issue_fix_sha> into the `release-$WORKFLOW_RELEASE` branch(es) of component repo(s)
149-
- retag the `git-<issue_fix_sha>` image with `$WORKFLOW_RELEASE` and push to 'staging' `deisci` quay org.
145+
- update the appropriate component's `dockerTag` value in the release chart with the `git-<issue_fix_sha>` from the cherry-pick commit above.
146+
- push updated chart change(s) to existing release branch and re-convene testing
147+
148+
When testing shows no further issues and the release chart is ready to ship, make sure the pull request is reviewed once more and merged before continuing.
149+
150+
!!! note
151+
152+
If non-release-specific amendments have been made to the release chart that do
153+
not exist in the `workflow-dev`, be sure to PR said changes for this chart as well.
150154

151155
# Step 6: Tag and Push Docker Images
152156

153-
After everyone has tested and determined that there are no show-stopping problems for this release,
154-
it's time to tag each individual Docker image with `$WORKFLOW_RELEASE`.
157+
It's time to retag each individual Docker image with the 'official' `$WORKFLOW_RELEASE` value in the `deis` [quay.io](https://quay.io/organization/deis) org.
155158

156159
To do so, simply go back to the directory where you checked out the `deis-workflow-group` repo
157-
and run the following two commands to tag and push updated docker images to the 'prod' `deis` quay org:
160+
and run the following two commands to retag the images:
158161

159162
```console
160163
BRANCH="release-$WORKFLOW_RELEASE" make git-checkout-branch
161164
TAG=$WORKFLOW_RELEASE ORG="deis" make docker-tag docker-push
162165
```
163166

164-
# Step 7: Update Helm Classic Chart
165-
166-
Now that new Docker images are on public Docker repositories, it's time to update the Helm Classic chart
167-
to reference the official images. We will use `deisrel` to do this. The following will change every `dockerTag` value
168-
to the same `$WORKFLOW_RELEASE` as well as now pointing to the `deis` quay org.
169-
170-
```console
171-
cd <back_to_charts_dir>
172-
deisrel helm-stage --tag $WORKFLOW_RELEASE --stagingDir workflow-$WORKFLOW_RELEASE_SHORT --org deis workflow
173-
deisrel helm-stage --tag $WORKFLOW_RELEASE --stagingDir workflow-$WORKFLOW_RELEASE_SHORT-e2e --org deis e2e
174-
deisrel helm-stage --tag $WORKFLOW_RELEASE --stagingDir router-$WORKFLOW_RELEASE_SHORT --org deis router
175-
```
176-
177-
When you're done, commit and push your changes. You should get your pull request reviewed and merged before continuing.
178-
179-
!!! note
180-
181-
If non-release-specific amendments have been made to the release chart that do
182-
not exist in the `workflow-dev`, be sure to PR said changes for this chart as well.
183-
184-
# Step 8: Update Changelogs
167+
# Step 7: Update Changelogs
185168

186169
At this point, part of the first part and all of the second part of the release is complete.
187170
That is, the Helm Classic chart for the new Workflow version is done, and new Docker versions for all
@@ -213,7 +196,7 @@ git push -u $YOUR_FORK_REMOTE release-$WORKFLOW_RELEASE_SHORT
213196

214197
Before you continue, ensure pull requests in all applicable repositories are reviewed, and merge them.
215198

216-
# Step 9: Tag and Push Git Repositories
199+
# Step 8: Tag and Push Git Repositories
217200

218201
The final step of the release process is to tag each git repository, and push the tag to each
219202
GitHub project. To do so, simply run the below command in the `deisrel` repository:
@@ -222,14 +205,14 @@ GitHub project. To do so, simply run the below command in the `deisrel` reposito
222205
deisrel git tag --ref release-$WORKFLOW_RELEASE $WORKFLOW_RELEASE
223206
```
224207

225-
# Step 10: Close GitHub Milestones
208+
# Step 9: Close GitHub Milestones
226209

227210
Close the github milestone by creating a new pull request at
228211
[seed-repo](https://github.com/deis/seed-repo). Any changes merged to master on that repository
229212
will be applied to all of the component projects. If there are open issues attached to the
230213
milestone, move them to the next upcoming milestone before merging the pull request.
231214

232-
# Step 11: Let Everyone Know
215+
# Step 10: Let Everyone Know
233216

234217
Jump in #company on slack and let folks know that the release has been cut! This will let
235218
folks in supporting functions know that they should start the release support process including

0 commit comments

Comments
 (0)