Skip to content

Latest commit

 

History

History
170 lines (128 loc) · 7.06 KB

File metadata and controls

170 lines (128 loc) · 7.06 KB
name New Release
about Propose a new release
title Release v0.x.0
labels
assignees

Introduction

This document defines the process for releasing Gateway API Inference Extension.

Prerequisites

  1. Permissions to push to the Gateway API Inference Extension repository.

  2. Set the required environment variables based on the expected release number:

    export MAJOR=0
    export MINOR=1
    export PATCH=0
    export REMOTE=origin
  3. If creating a release candidate, set the release candidate number.

    export RC=1
  4. 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

Release Process

  1. If needed, clone the Gateway API Inference Extension repo.

    git clone -o ${REMOTE} https://github.com/kubernetes-sigs/gateway-api-inference-extension.git
  2. If you already have the repo cloned, ensure it’s up-to-date and your local branch is clean.

  3. Release Branch Handling:

    • For a Release Candidate: Create a new release branch from the main branch. The branch should be named release-${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}
  4. Update release-specific content, generate release artifacts, pin the conformance module to the matching root-module version, and stage the changes.

    make release
  5. 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"
  6. Push your release branch to the Gateway API Inference Extension remote.

    git push ${REMOTE} release-${MAJOR}.${MINOR}
  7. Create and push signed tags for the repo and the conformance module.

    make release-tags

    This creates and pushes the following tags together:

    • v${MAJOR}.${MINOR}.${PATCH} or v${MAJOR}.${MINOR}.${PATCH}-rc.${RC}
    • conformance/v${MAJOR}.${MINOR}.${PATCH} or conformance/v${MAJOR}.${MINOR}.${PATCH}-rc.${RC}

    Note: A PGP key must be registered to your GitHub account.

  8. Pushing the root tag triggers Prow to build and publish the container image to the staging registry.

  9. 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}.

    1. Collect release digests from Artifact Registry:
      ./hack/release-staging-digests.sh
    2. Ensure the PR updates all release artifacts:
      • charts/inferencepool
      • charts/body-based-routing
      • charts/standalone
      • epp
      • bbr
      • latency-prediction-server
      • latency-training-server
    3. 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.
  10. Test the quickstart guide steps after the k8s.io PR merges:

    1. 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.
    2. Note: Instead of running the curl command to set IGW_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.
    3. Note: The release asset URL (releases/download/.../manifests.yaml) does not exist yet. Use the locally generated artifacts/manifests.yaml for CRD installation during this step.
  11. Create a new release:

    1. Choose the root tag that you created for the release, for example v1.5.0.
    2. Use the tag as the release title, i.e. v0.1.0 refer to previous release for the content of the release body.
    3. Click "Generate release notes" and preview the release body.
    4. Click "Attach binaries by dropping them here or selecting them." and add the contents of the artifacts directory generated from make release.
    5. If this is a release candidate, select the "This is a pre-release" checkbox.
  12. Verify the release asset URL after publishing:

    • Download the manifests.yaml asset from the newly created GitHub release and confirm it can be applied successfully with kubectl apply -f.
  13. If you find any bugs in this process, create an issue.

Announce the Release

Use the following steps to announce the release.

  1. Send an announcement email to wg-serving@kubernetes.io and dev@kubernetes.io with the subject:

    [ANNOUNCE] Gateway API Inference Extension v${MAJOR}.${MINOR}.${PATCH} is released
  2. Add a link to the release announcement in this issue.

Final Steps

  1. Update docs in the main branch.
  2. Close this issue.