Skip to content

Latest commit

 

History

History
 
 

release

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Istio Release

Overview

The release is started from the istio/istio module.

Istio release is currently composed of artifacts for the following repos:

The release consists in retagging the artifacts and creating new annotated tags.

Note that only Contributors can create a release (tags).

If you are making a release from a branch, use the branch name, e.g. BRANCH=release-0.1 for 0.1 or master for master.

Creating tags

From istio/istio, the istio.VERSION file should look like this

    $ cat istio.VERSION
    # DO NOT EDIT THIS FILE MANUALLY instead use
    # tests/updateVersion.sh (see tests/README.md)
    export CA_HUB="docker.io/istio"
    export CA_TAG="0.1.2-d773c15"
    export MIXER_HUB="docker.io/istio"
    export MIXER_TAG="0.1.2-6bfa390"
    export ISTIOCTL_URL="https://storage.googleapis.com/istio-artifacts/pilot/stable-6dbd19d/artifacts/istioctl"
    export PILOT_HUB="docker.io/istio"
    export PILOT_TAG="0.1.2-6dbd19d"

Please make sure that ISTIOCTL_URL and PILOT_TAG points to the same SHA.

The next release version is stored in istio.RELEASE:

    RELEASE_TAG="$(cat istio.RELEASE)"; echo $RELEASE_TAG

The next step is to create an annotated tag for each of the repo. Fortunately each tag above contains the short SHA at which it was built.

    PILOT_SHA=6dbd19d
    MIXER_SHA=6bfa390
    AUTH_SHA=d773c15

    $ git clone https://github.com/istio/pilot
    $ cd pilot
    $ git tag -a ${RELEASE_TAG} -m "Istio Release ${RELEASE_TAG}" ${PILOT_SHA}
    $ git push --tags origin

    $ git clone https://github.com/istio/mixer
    $ cd mixer
    $ git tag -a ${RELEASE_TAG} -m "Istio Release ${RELEASE_TAG}" ${MIXER_SHA}
    $ git push --tags origin

    $ git clone https://github.com/istio/auth
    $ cd auth
    $ git tag -a ${RELEASE_TAG} -m "Istio Release ${RELEASE_TAG}" ${AUTH_SHA}
    $ git push --tags origin

Rebuild Artifacts to include the tags

Go to Mixer stable artifacts job and click on Build with Parameters. Replace BRANCH_SPEC with the value of ${RELEASE_TAG}

Go to Pilot stable artifacts job and click on Build with Parameters. Replace BRANCH_SPEC with the value of ${RELEASE_TAG}

Go to Auth stable artifacts job and click on Build with Parameters. Replace BRANCH_SPEC with the value of ${RELEASE_TAG}

Updating istio.VERSION

Now we need update the tags istio.VERSION to point to the release tag.

    $ git checkout -b ${USER}-${RELEASE_TAG} origin/${BRANCH}
    $ install/updateVersion.sh -p docker.io/istio,${RELEASE_TAG} \
       -c docker.io/istio,${RELEASE_TAG} -x docker.io/istio,${RELEASE_TAG} \
       -i https://storage.googleapis.com/istio-artifacts/pilot/${RELEASE_TAG}/artifacts/istioctl

Create a commit with name "Istio Release ${RELEASE_TAG}", and a PR. Once tests are completed, merge the PR, and create an annotated tags

    $ git pull origin ${BRANCH}
    $ git tag -a ${RELEASE_TAG} -m "Istio Release ${RELEASE_TAG}" HEAD # assuming nothing else was committed
    $ git push --tags origin

Creating Archives

Sync your workspace at ${RELEASE_TAG}:

    $ git reset --hard ${RELEASE_TAG}
    $ git clean -xdf

Create the release archives

    $ ./release/create_release_archives.sh
    # On a Mac
    $ CP=gcp TAR=gtar ./release/create_release_archives.sh
    ...
    Archives are available in /tmp/istio.version.A59u/archives

Open the GitHub Release page, and edit the release that points to ${RELEASE_TAG}. Uploads the artifacts created by the previous script.

Finalizing the release

Create a PR, where you increment istio.RELEASE for the next release and you update istio/downloadIstio.sh to point to ${RELEASE_TAG}