This document describes the process for creating a new release of the kueue-operator.
First, update the gitsubmodule to point to the upstream Kueue release branch:
cd upstream/kueue/src
git fetch origin
git checkout release-X.Y # Replace X.Y with the target release version (e.g., release-0.14)
cd ../../..
git add upstream/kueue/srcRun the sync_manifests script to update the operator's bindata with the manifests from the pinned release:
./hack/sync_manifests.py --src-dir upstream/kueue/src/config/componentsThis will:
- Generate manifests using kustomize from the upstream source
- Process and split the manifests into separate files
- Update the bindata/assets/kueue-operator directory
Commit the submodule pin and manifest changes to the main branch:
git add bindata/
git commit -m "Release: Pin upstream kueue to release-X.Y and sync manifests
- Update gitsubmodule to point to upstream release-X.Y
- Sync manifests from upstream release branch
- Update bindata assets
Create a new release branch for the operator:
git checkout -b release-X.Y # Match the upstream release version
git push -u origin release-X.YSwitch back to the main branch and repin the submodule to upstream main:
git checkout main
cd upstream/kueue/src
git checkout main
git pull origin main
cd ../../..
git add upstream/kueue/src
git commit -m "Repin upstream kueue submodule to main
- Update gitsubmodule to track upstream main branch
- Prepare for next development cycle
git push origin mainThe complete release flow:
- Main branch: Pin submodule to
release-X.Y→ Sync manifests → Commit - Create branch: Branch from main to create
release-X.Yoperator branch - Main branch: Repin submodule back to
main→ Commit
This ensures:
- The release branch contains manifests from the upstream release
- The main branch continues tracking upstream development
- Clean separation between release and development versions
After completing the release process, verify:
- The release branch exists and has the submodule pinned to the correct upstream release
- The main branch has the submodule repinned to upstream main
- Manifests in bindata/ on the release branch match the upstream release
- CI/CD pipelines pass on both branches