-
Notifications
You must be signed in to change notification settings - Fork 8k
Description
This issue aims to track all steps needed to prepare the release 1.8 branches/builds.
This issue was created early to help document the steps using some new automation (I hope) as well as any ordering changes, etc. Please update/add additional steps taken here so we can document for future releases.
See #24473 for steps used for the release 1.7 branch cutting. Note that was before automation, but does have pointers to PRs to see what some of the steps did. Note that the actual coding steps done by the automation steps are left in this issue for reference only. You only need to run the automated steps, and not the individual instructions.
For now, the code to run is in https://github.com/ericvn/release-builder/tree/autoBranch. From within that branch, one can do a make shell
and then within the shell run REPO_ORG=myorg STEP=x ./release/branch.sh
(you can update the STEP in the trigger-branch
file and not set it manually). This generates the changes for review (trygit status
or git diff
). Adding DRY_RUN=true will cause the PRs to be created in the REPO_ORG.
Note that the automated steps 3 and on require the new release's branch which is created in automated step 2.
-
Set up release manager team - Make sure the new team has write access to the repositories.(Add 1.8 release manager group community#466)
-
Build new base images:
1.9-dev.0
. Runtools/build-base-images.sh
. In this case, 1.8-dev.1 had vulnerabilities, so 1.8-dev.2 was also built. -
Update dependencies. This must be done before branching so that PRs can be easily backported later.
- Check if
github.com/envoyproxy/go-control-plane
dependency needs to be updated (to master?). Ask Kuat. - (Automation step=1) Run the following command in istio/istio
UPDATE_BRANCH=master ./bin/update_deps.sh; make gen
- Merge PR in istio/istio. Wait for it to complete.
- Check if
-
(Automation step=2) (new step because we are waiting on prior change to master before branching) Create a
release-1.8
branch in every Istio repo - run commandsexport org=xyz ; export repo=xyz ; (git clone git@github.com:${org}/${repo}.git && cd $repo && git checkout -b release-1.8 && git push --set-upstream origin release-1.8)
.- istio/istio
- istio/pkg
- istio/api
- istio/proxy
- istio/envoy
- istio/client-go
- istio/tools
- istio/common-files
- istio/gogo-genproto
- istio/release-builder
- Explicitly skipped: istio-releases/pipeline, istio/tests, istio/istio.io, istio/test-infra
- No PRs to merge as the new branches were created by automation
-
Set up branch protection. Modify prow/config.yaml in test-infra to add release manages as owners for branch. Ex: Add branch protection for 1.7 branches test-infra#2820.
-
(Automation step=3) (doesn't work locally, appears to need credential to add a tag to an existing build-tools image)(new step because this might need to be done separately) Set up prow on release branches
go run generate.go branch 1.8
(Note: Needed to run postsubmit in next step) -
(Automation step=4) (new step since we want the automation from prior step to actually create the image after PR merges)
- Updates istio/tools to build new release-1.8 build image (update BRANCH in docker/build-tools/build-and-push.sh. PR postsubmit will create new container images whose name will be used in the next step)
- Update common-files in new release. You first have to manually update the common/Makefile.common.mk update-common target to point to the new release (but not in common-files). The next step will cause the prow automation to actually call
make update-common
in these repos to do the actualmake update-common
against the new common-files release branch- istio/common-files - skipped. Covered in next step
- istio/istio
- istio/pkg
- istio/api
- istio/envoy (not needed)
- istio/client-go
- istio/gogo-genproto
- istio/proxy
- istio/release-builder
- istio/tools
- Update
CODEOWNERS
to contain only the release managers for this release. Command:export org=xyz ; export repo=xyz ; (git clone git@github.com:${org}/${repo}.git && cd $repo && git checkout release-1.8 && git checkout -b release-1.8-codeowners && echo '* @istio/release-managers-1-8' > CODEOWNERS && git add CODEOWNERS && git commit -m 'Set release managers as CODEOWNERS for release-1.8' && git push --set-upstream origin release-1.8-codeowners)
.- istio/istio
- istio/pkg
- istio/api
- istio/envoy
- istio/proxy
- istio/client-go
- istio/tools
- istio/common-files
- istio/gogo-genproto
- istio/release-builder
- Stop publishing
latest
tags - Update istio/release-builder branch changes from
master
to new release in build.sh, and manifests.
-
Merge PRs from STEP 4. Wait for the new build images to be created at https://gcr.io/istio-testing/build-tools.
-
(Automation step=5) (new step since we need image from prior step) Update istio/common-files to set release-1.8 build image (Update the UPDATE_BRANCH in files/common/Makefile.common.mk to be the new release name, and IMAGE_VERSION in files/common/scripts/setup_env.sh to be the new build image from prior step (found at https://gcr.io/istio-testing/build-tools)
-
Merge PR from STEP 5. Wait until step 5 PR merges and all the postsubmit generated PRs (to update common files in repos) merge.
Additional steps that still need automation (if possible)
- Adjust istio/proxy to correct version of istio/envoy
- Update all repos that point to master branch of another repo to point to the release branch.
master-latest-daily
->1.8-dev
(see https://discuss.istio.io/t/deprecation-notice-daily-builds/3991),latest
->1.8-dev
,git clone master
togit clone release-1.8
, etc.- istio/istio
- istio/pkg
- istio/api
- istio/envoy
- istio/proxy
- istio/client-go
- istio/tools
- istio/common-files
- istio/gogo-genproto
- istio/release-builder
- Bump master to version 1.9
- Update istio: 1.8-dev to 1.9-dev, 1.8-dev.x to 1.9-dev.0, 1.8 to 1.9, 1.8.0 to 1.9.0 (From 1.7: Bump version to 1.8 #25742)
- Add new label: cherrypick/release-1.8
- Run the long-running tests on the dev builds (owner: )
- Send an announcement on Discuss ()
- Add release lock for release 1.8 in master branch of API repo. See https://github.com/istio/api/blob/master/scripts/check-release-locks.md
- Publish an alpha release
- Trigger a 1.8 alpha build (owner: )
- Publish a 1.8 alpha release (owner: )