Skip to content

Create 1.3.0-rc.0 pre-release #16411

@rlenglet

Description

@rlenglet
  • Prepare istio/cni.
    • Sync the fork of the istio-iptables.sh script. Update istio-iptables.sh in release-1.3 cni#157
      git clone git@github.com:istio/cni.git
      pushd cni
      git checkout release-1.3
      git checkout -b update-istio-iptables-release-1.3
      make -f tools/istio-cni-docker.mk update-istio-iptables.sh
      git add tools/packaging/common/istio-iptables.sh
      git commit -m 'Update istio-iptables.sh'
      git push --set-upstream origin update-istio-iptables-release-1.3
      popd
      
  • Check whether the commit SHAs in istio/istio and istio/proxy are consistent.
    • Check whether the same istio/api commit is used in istio/istio and istio/proxy.
      git clone git@github.com:istio/istio.git
      pushd istio
      git checkout release-1.3
      export ISTIO_API_SHA_ISTIO=$(sed -n 's,^.*istio\.io/api v0.0.0-[^-]*-,,p' go.mod)
      export ISTIO_PROXY_SHA_ISTIO=$(jq -r '.[] | select(.repoName == "proxy") | .lastStableSHA' < istio.deps)
      export GO_CONTROL_PLANE_SHA=$(sed -n 's,^.*github.com/envoyproxy/go-control-plane ,,p' go.mod)
      popd
      
      git clone git@github.com:istio/proxy.git
      pushd proxy
      git checkout $ISTIO_PROXY_SHA_ISTIO
      export ISTIO_API_SHA_PROXY=$(git rev-parse --short=12 $(sed -n 's,^ISTIO_API = "\([^"]*\)".*$,\1,p' < repositories.bzl))
      export ENVOY_SHA_PROXY=$(sed -n 's,^ENVOY_SHA = "\([^"]*\)".*$,\1,p' < WORKSPACE)
      popd
      
      test "$ISTIO_API_SHA_ISTIO" != "$ISTIO_API_SHA_PROXY" && echo "different istio/api commits in istio/istio and istio/proxy"
      
    • Check whether the version of Envoy from which the go-control-plane's API has been extracted from is no more than a few days older to the version of Envoy used in istio/proxy.
      git clone git@github.com:envoyproxy/go-control-plane.git
      pushd go-control-plane
      git checkout $GO_CONTROL_PLANE_SHA
      export DATA_PLANE_API_SHA=$(git submodule | sed -n 's,^-\([^ ]*\) data-plane-api.*$,\1,p')
      popd
      
      git clone git@github.com:envoyproxy/data-plane-api.git
      pushd data-plane-api
      git checkout $DATA_PLANE_API_SHA
      export ENVOY_SHA_DATA_PLANE_API=$(git log -1 | sed -n 's,^.*Mirrored from.*envoy @ ,,p')
      popd
      
      echo "Envoy SHA used in istio/proxy: https://github.com/istio/envoy/commit/$ENVOY_SHA_PROXY"
      echo "Envoy SHA used in envoyproxy/go-control-plane: https://github.com/envoyproxy/envoy/commit/$ENVOY_SHA_DATA_PLANE_API"
      
      If the versions are different, you'll have to update the version used in istio/istio or istio/proxy to use the most recent version in both repos.
    • Check whether the API commit SHA is the same in both repositories.bzl and istio.deps in istio/proxy.
      pushd proxy
      git checkout $ISTIO_PROXY_SHA
      export API_COMMIT_IN_REPOSITORIES=$(sed -n 's,^ISTIO_API = "\([^"]*\)".*$,\1,p' < repositories.bzl)
      export API_COMMIT_IN_DEPS=$(jq -r '.[] | select(.repoName == "api") | .lastStableSHA' < istio.deps)
      test "$API_COMMIT_IN_REPOSITORIES" != "$API_COMMIT_IN_DEPS" && echo "different API commits"
      popd
      
  • Update the SHAs in istio/proxy. All SHAs should ideally be updated in a single PR since it takes ~1.5 hours to build an image after it is merged.
    • If necessary, update the version of Envoy used in istio/proxy. Update WORKSPACE and istio.deps with the same SHA. The SHA must exist in the istio/envoy:release-1.3 branch. WORKSPACE istio.deps
    • If the istio/api SHAs are different within istio/proxy between repositories.bzl and istio.deps, fix it in istio.deps. istio.deps
    • If the istio/api SHA is behind the one used in istio/istio, replace the SHA in both repositories.bzl and istio.deps to use the same as in istio/istio. repositories.bzl istio.deps
  • Update the SHAs in istio/istio. All SHAs should ideally be updated in a single PR to ensure consistency.
    • If the version of API used in the go-control-plane version is too far behind the Envoy version used in istio/proxy:
      • If necessary, first create a new release of go-control-plane that uses the same API version as the Envoy version used in istio/proxy.
      • Update the go-control-plane version in istio/istio in go.mod. go.mod
    • If necessary, update the istio/proxy SHA in istio/istio in istio.deps. istio.deps
    • Update the istio/cni SHA in istio/istio in istio.deps. This SHA must be the HEAD of the release-1.3 branch. The release script pulls the HEAD of the branch, not this specific SHA, but the SHA is printed out in the release manifest, so it's better to keep it consistent. istio.deps
  • Build the release by updating the monthly/release_params.sh parameters to use the SHA of the HEAD of istio.istio:release-1.3, and the 1.3.0-rc.0 version. Build release 1.3.0-rc.0 istio-releases/pipeline#1079
    git clone git@github.com:istio/istio.git
    pushd istio
    git checkout release-1.3
    export ISTIO_SHA=$(git rev-parse HEAD)
    popd
    
    git clone git@github.com:istio-releases/pipeline.git
    pushd pipeline
    git checkout release-1.3
    git checkout -b create-1.3.0-rc.0-release
    sed -e 's/CB_BRANCH=.*$/CB_BRANCH=release-1.3/' \
        -e 's/CB_COMMIT=.*$/CB_COMMIT='$ISTIO_SHA'/' \
        -e 's/CB_VERSION=.*$/CB_VERSION=1.3.0-rc.0/' \
        -i monthly/release_params.sh
    git add monthly/release_params.sh
    git commit -m 'Build release 1.3.0-rc.0'
    git push --set-upstream origin create-1.3.0-rc.0-release
    popd
    
    Wait until the build finishes and is available in https://gcsweb.istio.io/gcs/istio-prerelease/prerelease/1.3.0-rc.0/ and in draft state in https://github.com/istio/istio/releases.
  • Run the long-running tests on the build. (owners: @mandarjog, @howardjohn, @JimmyCYJ)
  • Publish the release in the GitHub UI. Use the edit button on the draft release in https://github.com/istio/istio/releases. Make sure the pre-release box is checked. Remove the RELEASE NOTES link from the description.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions