forked from kubernetes-sigs/cluster-api
-
Notifications
You must be signed in to change notification settings - Fork 1
How to Release
Dimitri Koshkin edited this page Mar 12, 2022
·
24 revisions
We use the convention ${UPSTREAM_VERSION}-d2iq.${DOWNSTREAM_VERSION}
. For example, if latest tagged upstream version is v1.1.3
, our first release with that version is v1.1.3-d2iq.0
, our second release is v1.1.3-d2iq.1
, and so on.
We should keep up to date with upstream. If there is a new upstream version, we should pull in the changes.
# Fetch all tags from upstream
git fetch upstream 'refs/tags/*:refs/tags/*'
# Use the most recent tag
export UPSTREAM_VERSION=v1.1.3
export VERSION=${UPSTREAM_VERSION}-d2iq.0
export RELEASE_TAG=${VERSION}
# Override upstream container image defaults
export REGISTRY=docker.io/mesosphere
export PROD_REGISTRY=$REGISTRY
export TAG=$VERSION
# checkout the bracnh
git checkout -b release/${VERSION} ${UPSTREAM_VERSION}
# cherry-pcik d2iq changes
git cherry-pick 44689a320 1cd9ab71e b47c5fa41
# tag and push the new release
git tag -s ${VERSION} -m ${UPSTREAM_VERSION}
git push origin ${VERSION}
git push origin release/${VERSION}
# Build the release artifacts
make release
# create the Github release and push the artifacts
export GITHUB_TOKEN=<>
gh release create --repo mesosphere/cluster-api --title ${VERSION} --notes "${VERSION}" ${VERSION}
gh release upload --repo mesosphere/cluster-api ${VERSION} out/*
# NOTE Each arch requires its own registry. So far, we only have a registry for amd64.
# Build images for every arch
make ALL_ARCH=amd64 docker-build-all
# Push images for every arch
make ALL_ARCH=amd64 docker-push-all