For a major or minor release, you will need to create a new
release-vX.Y
branch based on the target minor version.
Review the milestone for this release and ensure it is accurate. https://github.com/tigera/operator/milestones
Checkout the branch from which you want to release. Ensure that you are using the correct operator version for the version of Calico or Calient that you are releasing. If in doubt, check the releases page to find the most recent Operator release for your Calico or Calient minor version.
Update the image versions and the title field with the appropriate versions in the
format vX.Y.Z
for each of the following files:
config/calico_versions.yml
(Calico OSS version)config/enterprise_versions.yml
(Calico Enterprise version)config/common_versions.yaml
(components common to both)
For the first build of a new minor version (e.g. v1.31.0), also update
the following values to reference quay.io
instead of gcr.io
:
TigeraRegistry
inpkg/components/images.go
defaultEnterpriseRegistry
inhack/gen-versions/main.go
Then ensure make gen-versions
has been ran and the resulting updates have been committed.
Make sure the branch is in a good state:
- Update any pins in go.mod
- Create a PR for all of the local changes (versions updates, gen-versions, etc)
- Ensure tests pass
You should have no local changes and tests should be passing.
-
Merge your PR to the release branch
-
Create a git tag for the new commit on the release branch and push it:
git tag v1.30.3
git push --tags
- Log in to semaphore and find the new build for the release branch commit, and click 'Rerun'. When Semaphore starts the rebuild, it will notice the new tag and build and publish an operator release.
-
Run the following command to generate release notes for the release
GITHUB_TOKEN=<access-token> VERSION=<TAG> ./generate-release-notes.py
-
Go to https://github.com/tigera/operator/releases and edit the release tag to include the generated release notes, and update the title.
-
Close the milestone for this release. https://github.com/tigera/operator/milestones
-
Go to https://github.com/tigera/operator/milestones and create any new milestones that should exist (e.g., next patch release)
(TODO: We need to be able to detect new CRDs and do this automatically)
If the release includes new Calico CRDs, add the new CRDs to hack/gen-bundle/get-manifests.sh
and config/manifests/bases/operator.clusterserviceversion.yaml
.
(Note: We are not currently publishing to RH Catalog, but we will resume soon. These notes are left here for current and future reference.)
We currently only publish operator releases targeting Calico. If the release targets Calico, continue onto the following steps to generate the operator bundle for it, and publish the release on the RH Catalog.
Before beginning, ensure that the docs at docs.projectcalico.org for the Calico version this operator release targets is live.
-
After the semaphore job in the releasing steps is complete, and images have been tagged and pushed, checkout the tag you released and create a new branch.
-
Login to our operator project on connect.redhat.com and publish the operator image on the RH Catalog. This step needs to happen before we generate and submit the operator bundle.
-
Create the operator bundle using
make bundle
with the required variablesVERSION
,PREV_VERSION
,CHANNELS
, andDEFAULT_CHANNEL
:Note: the version strings in
VERSION
andPREV_VERSION
are semver strings without the v.- VERSION: this release version. E.g.
1.13.1
- PREV_VERSION: the latest published bundle version in this release stream. Navigate to the certified operators production catalog and look for the most recent version from this release branch. E.g., if this release is
v1.24.11
but the most recently published v1.24.x bundle is1.24.9
then you would useVERSION=1.24.11
andPREV_VERSION=1.24.9
. If this release is the first in this release branch, then there is no prior version so setPREV_VERSION=0.0.0
. - CHANNELS and DEFAULT_CHANNEL: should be set to the release branch of this operator release. E.g., if the operator release tag is
v1.23.5
, then CHANNELS and DEFAULT_CHANNEL should berelease-v1.23
.
For example:
make bundle VERSION=1.13.1 PREV_VERSION=1.13.0 CHANNELS=release-v1.13 DEFAULT_CHANNEL=release-v1.13
This step will create the bundle
bundle/1.13.1
. - VERSION: this release version. E.g.
-
Publish the generated operator bundle following the Operator Certification CI Pipeline instructions. Bundles are no longer committed in this repository as they are committed in redhat-openshift-ecosystem/certified-operators.