This is the documentation for the latest development version of Velero. Both code and docs may be unstable, and these docs are not guaranteed to be up to date or correct. See the latest version.
This page covers the steps to perform when releasing a new version of Velero.
git remote -v
.
The release script (
tag-release.sh
) will use upstream
as the default remote name if it is not specified using the environment variable REMOTE
.Velero is on a “train leaves the station” model for releases. We will generate a release candidate (RC) at the scheduled time. Multiple release candidates may be generated, depending on if bugs are found during testing. When testing has passed a release build will be generated.
The release candidate commit must meet the following criteria:
Once the release has moved to RC, a code freeze is in effect. Only changes needed to release are allowable.
In order for a release candidate to be released, it must meet the following criteria:
When bugs are identified by any of these methods, we will determine whether the bug is a release blocker or not and a fix generated if it is. When release blocker bugs identifies in an release candidate are fixed, another RC will be generated and the test cycle will restart.
For each major or minor release, create and publish a blog post to let folks know what’s new. Please follow these instructions.
You don't have enough free space in /var/cache/apt/archives/
when running make serve-docs
: run docker system prune
.changelogs/CHANGELOG-<major>.<minor>.md
by copying the most recent one.changelogs/CHANGELOG-<major>.<minor>.md
make changelog
to generate a list of all unreleased changes.CHANGELOG-<major>.<minor>.md
, under the “All Changes” section for the release.CHANGELOG.md
file to properly reference the release-specific changelog file
changelogs/unreleased
.make gen-docs
, passing the appropriate variables. Examples:
a) VELERO_VERSION=v1.5.0-rc.1 NEW_DOCS_VERSION=v1.5.0-rc.1 make gen-docs
.
b) VELERO_VERSION=v1.5.0 NEW_DOCS_VERSION=v1.5 make gen-docs
).PREVIOUS_DOCS_VERSION=<doc-version-to-copy-from>
is optional; when not set, it will default to the latest doc version.VELERO_VERSION
and NEW_DOCS_VERSION
are slightly different, the VELERO_VERSION
may have lots of small release versions for one specific $major.minor, such as ‘v1.5.0’ and ‘v1.5.1’, but NEW_DOCS_VERSION
may still be ‘v1.5’ for not document update.site/content/docs/v1.5.0-beta.1
exists, and you’re releasing v1.5.0-rc.1
or v1.5
site/content/docs/<pre-release-version>
.site/data/docs/<pre-release-version>-toc.yml
.site/data/toc-mapping.yml
.site/config.yml
.main
folders.site/README-HUGO.md
to complete the docs generation process.make serve-docs
and review the site.The image of velero is built based on
Distroless docker image.
For the reproducibility of the release, before the release candidate is tagged, we need to make sure the in the Dockerfile
on the release branch, the base image is referenced by digest, such as
https://github.com/vmware-tanzu/velero/blob/release-1.7/Dockerfile#L53-L54
release-$major.$minor
VELERO_VERSION=v1.9.0-rc.1 REMOTE=<upstream-remote> GITHUB_TOKEN=REDACTED ON_RELEASE_BRANCH=TRUE ./hack/release-tools/tag-release.sh
.VELERO_VERSION=v1.9.0-rc.1 REMOTE=<upstream-remote> GITHUB_TOKEN=REDACTED ON_RELEASE_BRANCH=TRUE ./hack/release-tools/tag-release.sh publish
.v1.9.1
), note that the full CHANGELOG-1.9.md
contents will be included in the body of the GitHub release. You need to delete the previous releases' content (e.g. v1.9.0
’s changelog) so that only the latest patch release’s changelog shows.goreleaser
process should have detected if it’s a pre-release version and, if so, checked the box at the bottom of the GitHub release page appropriately, but it’s always worth double-checking.velero version
shows the expected outputThese are the steps to update the Velero Homebrew version.
export HOMEBREW_GITHUB_API_TOKEN=your_token_here
on your command line to make sure that brew
can work on GitHub on your behalf.hack/release-tools/brew-update.sh
. This script will download the necessary files, do the checks, and invoke the brew helper to submit the PR, which will open in your browser.tools\chocolateyinstall.ps1
file content according to
the existing Velero chocolatey package install script file. The current Velero chocolatey package maintainer is
Adam Rush. It’s possible others don’t have permission to upload the new version. If so, please contact
Adam Rush for help.To release plugins maintained by the Velero team, follow the plugin release instructions.
After the plugin images are built, be sure to update any e2e tests that use these plugins.
crds
according to the current Velero GA version, and add the labels for the helm chart CRDs. For example:
https://github.com/vmware-tanzu/helm-charts/pull/248.version
on the Chart.yaml
.appVersion
on the Chart.yaml
file and tag
on the values.yaml
file.values.yaml
if needed.README.md
file.What to include in a release blog:
Release blog post PR:
site/content/_index.md
to have “Latest Release Information” contain a link to the new post.Once you are finished doing the release, let the rest of the world know it’s available by posting messages in the following places.
What to include:
To help you get started, see the documentation.