Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 2.41 KB

RELEASE.md

File metadata and controls

34 lines (25 loc) · 2.41 KB

Release Process

Overview

The Karpenter project is an SIG autoscaling project that has the following two components:

  • Kubernetes Custom Resource Definitions (CRDs)
  • Corresponding Go API in the form of sigs.k8s.io/karpenter Go package

This repository is the home for both of the above components.

Versioning Strategy

The versioning strategy for this project is covered in detail in the release type section of the compatability documentation.

Releasing a New Version

The following steps must be done by one of the Karpenter Maintainers:

For a MAJOR, MINOR, or RC release:

  • Verify the CI tests pass before continuing.
  • Create a tag using the current HEAD of the main branch by using git tag v<major>.<minor>.<patch>
  • Push the tag to upstream using git push upstream v<major>.<minor>.<patch>
  • This tag will kick-off the Release Workflow which will auto-generate release notes into the repo's Github releases.

For a PATCH release:

  • Create a new branch in the upstream repo similar to release-v<major>.<minor>.x that's checked out from the latest released tag from HEAD on v<major>.<minor> if one doesn't already exist.
  • Create a branch in your fork (origin) repo similar to <githubuser>/release-v<major>.<minor>.<patch>. Use the new branch in the upcoming steps.
  • Use git to cherry-pick all relevant PRs into your branch.
  • Create a pull request of the <githubuser>/release-v<major>.<minor>.<patch> branch into the release-v<major>.<minor>.x branch upstream. Wait for at least one maintainer/codeowner to provide a lgtm.
  • Verify the CI tests pass and merge the PR into release-v<major>.<minor>.x.
  • Create a tag using the HEAD of the release-v<major>.<minor>.x branch by using git tag v<major>.<minor>.<patch>
  • Push the tag to upstream using git push upstream v<major>.<minor>.<patch>
  • This tag will kick-off the Release Workflow which will auto-generate release notes into the repo's Github releases.