| name | New Release |
|---|---|
| about | Propose a new release |
| title | Release v0.x.0 |
| labels | |
| assignees |
This document defines the process for releasing Gateway API Inference Extension.
-
Permissions to push to the Gateway API Inference Extension repository.
-
Set the required environment variables based on the expected release number:
export MAJOR=0 export MINOR=1 export PATCH=0 export REMOTE=origin
-
If creating a release candidate, set the release candidate number.
export RC=1 -
Refer to the release-quickstart script for the default image tags used by the vLLM deployment manifests. If a newer GPU, CPU, or Simulator tag has been published, set the appropriate environment variable or update the script. For example:
export VLLM_GPU=0.13.0 export VLLM_CPU=0.9.3 export VLLM_SIM=0.6.1
-
If needed, clone the Gateway API Inference Extension repo.
git clone -o ${REMOTE} https://github.com/kubernetes-sigs/gateway-api-inference-extension.git -
If you already have the repo cloned, ensure it’s up-to-date and your local branch is clean.
-
Release Branch Handling:
-
For a Release Candidate: Create a new release branch from the
mainbranch. The branch should be namedrelease-${MAJOR}.${MINOR}, for example,release-0.1:git checkout -b release-${MAJOR}.${MINOR}
-
For a Major, Minor or Patch Release: A release branch should already exist. In this case, check out the existing branch:
git checkout -b release-${MAJOR}.${MINOR} ${REMOTE}/release-${MAJOR}.${MINOR}
-
-
Update release-specific content, generate release artifacts, pin the
conformancemodule to the matching root-module version, and stage the changes.make release
-
Sign, commit, and push the changes to the Gateway API Inference Extension repo.
For a release candidate:
git commit -S -m "Updates artifacts for v${MAJOR}.${MINOR}.${PATCH}-rc.${RC} release"For a major, minor or patch release:
git commit -S -m "Updates artifacts for v${MAJOR}.${MINOR}.${PATCH} release" -
Push your release branch to the Gateway API Inference Extension remote.
git push ${REMOTE} release-${MAJOR}.${MINOR}
-
Create and push signed tags for the repo and the
conformancemodule.make release-tags
This creates and pushes the following tags together:
v${MAJOR}.${MINOR}.${PATCH}orv${MAJOR}.${MINOR}.${PATCH}-rc.${RC}conformance/v${MAJOR}.${MINOR}.${PATCH}orconformance/v${MAJOR}.${MINOR}.${PATCH}-rc.${RC}
Note: A PGP key must be registered to your GitHub account.
-
Pushing the root tag triggers Prow to build and publish the container image to the staging registry.
-
Submit a PR against k8s.io to add the staging image tag and SHA to
k8s-staging-gateway-api-inference-extension/images.yaml. This will promote the image to the production registry, e.g.registry.k8s.io/gateway-api-inference-extension/epp:v${MAJOR}.${MINOR}.${PATCH}.- Collect release digests from Artifact Registry:
./hack/release-staging-digests.sh
- Ensure the PR updates all release artifacts:
charts/inferencepoolcharts/body-based-routingcharts/standaloneeppbbrlatency-prediction-serverlatency-training-server
- If an artifact does not yet have a section in
images.yaml(for example a newly added chart), add a new section before adding the digest mapping. Note: Add a link to this issue when the PR is merged.
- Collect release digests from Artifact Registry:
-
Test the quickstart guide steps after the k8s.io PR merges:
- Follow the tagged quickstart guide at
site-src/guides/index.md, for example:https://github.com/kubernetes-sigs/gateway-api-inference-extension/blob/v0.1.0-rc.1/site-src/guides/index.md. - Note: Instead of running the
curlcommand to setIGW_LATEST_RELEASE, manually set it to the version being tested (e.g.,export IGW_LATEST_RELEASE=v0.1.0-rc.1). The guide's curl command filters out prereleases and will not resolve the new tag until after it is published. - Note: The release asset URL (
releases/download/.../manifests.yaml) does not exist yet. Use the locally generatedartifacts/manifests.yamlfor CRD installation during this step.
- Follow the tagged quickstart guide at
-
Create a new release:
- Choose the root tag that you created for the release, for example
v1.5.0. - Use the tag as the release title, i.e.
v0.1.0refer to previous release for the content of the release body. - Click "Generate release notes" and preview the release body.
- Click "Attach binaries by dropping them here or selecting them." and add the contents of the
artifactsdirectory generated frommake release. - If this is a release candidate, select the "This is a pre-release" checkbox.
- Choose the root tag that you created for the release, for example
-
Verify the release asset URL after publishing:
- Download the
manifests.yamlasset from the newly created GitHub release and confirm it can be applied successfully withkubectl apply -f.
- Download the
-
If you find any bugs in this process, create an issue.
Use the following steps to announce the release.
-
Send an announcement email to
wg-serving@kubernetes.ioanddev@kubernetes.iowith the subject:[ANNOUNCE] Gateway API Inference Extension v${MAJOR}.${MINOR}.${PATCH} is released
-
Add a link to the release announcement in this issue.
- Update docs in the
mainbranch. - Close this issue.