etcd release guide
etcd v3.1.12 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest release, v3.4.0, or the current documentation.
The guide talks about how to release a new version of etcd.
The procedure includes some manual steps for sanity checking but it can probably be further scripted. Please keep this document up-to-date if making changes to the release process.
Set desired version as environment variable for following steps. Here is an example to release 2.3.0:
export VERSION=v2.3.0
export PREV_VERSION=v2.2.5
All releases version numbers follow the format of semantic versioning 2.0.0.
[GH XXXX]
at the head of change line to reference Pull Request that introduces the change. Moreover, add a link on it to jump to the Pull Request.release-note
label and explain them in NEWS
file, as a straightforward summary of changes for end-users.${VERSION}
.git tag -s ${VERSION}
.git show tags/$VERSION
.git push origin tags/$VERSION
. This assumes origin
corresponds to “https://github.com/coreos/etcd".acbuild
is available.docker
is available.Run release script in root directory:
./scripts/release.sh ${VERSION}
It generates all release binaries and images under directory ./release.
etcd project key must be used to sign the generated binaries and images.$SUBKEYID
is the key ID of etcd project Yubikey. Connect the key and run gpg2 --card-status
to get the ID.
The following commands are used for public release sign:
cd release
for i in etcd-*{.zip,.tar.gz}; do gpg2 --default-key $SUBKEYID --armor --output ${i}.asc --detach-sign ${i}; done
for i in etcd-*{.zip,.tar.gz}; do gpg2 --verify ${i}.asc ${i}; done
The public key for GPG signing can be found at CoreOS Application Signing Key
docker login quay.io
docker push quay.io/coreos/etcd:${VERSION}
latest
tag to the new image on
quay.io if this is a stable release.git log ...${PREV_VERSION} --pretty=format:"%an" | sort | uniq | tr '\n' ',' | sed -e 's#,#, #g' -e 's#, $##'
git push origin ${VERSION_MAJOR}.${VERSION_MINOR}
if this is a major stable release. This assumes origin
corresponds to “https://github.com/coreos/etcd".${VERSION}+git
.etcd release guide