Release Engineering

May 28, 2026 ยท View on GitHub

This directory contains documentation for the Kubernetes Release Engineering subproject of SIG Release.

Documentation Index

Handbooks

  • Release Manager Handbook - Comprehensive guide for Release Managers covering onboarding, branch management, cherry-pick reviews, and day-to-day responsibilities.
  • Cutting a Kubernetes Release - Step-by-step procedure for cutting all release types (alpha, beta, rc, official) and patch releases.
  • Security Releases - Coordinating with the Security Response Committee, managing CVE data maps, and handling security releases.
  • Branch Creation - Infrastructure tasks after rc.0 is cut, including branch configuration, CI jobs, and testgrid setup.
  • Go Version Management - Updating Go versions in Kubernetes, including kube-cross images and dependency management.

Reference Documentation

  • Release Artifacts - Overview of all artifacts produced by a Kubernetes release (container images, binaries, tarballs, packages).
  • Release Versioning - Kubernetes release versioning scheme, semantic versioning, and patch release policies.
  • Platform Support - Platform support tiers (Tier 1, 2, 3), criteria, and the list of supported platforms.
  • Base Image Exception List - Tracking exceptions for container base images used in Kubernetes.
  • GCP Projects and IAM - GCP project inventory and IAM configuration for release infrastructure.

Planning

Roles and Responsibilities

Details about the different roles in Release Engineering, requirements, and the progression path are documented on the Kubernetes website.

For Newcomers

We have a Buddy Program to improve onboarding:

  • Release Managers follow up with newcomers to go over processes and empower them to ask questions.
  • Newcomers can request a Buddy (a Release Manager), who will also be shadowed by up to two Release Manager Associates.
  • Buddies will come from the same general time zone area and, as often as possible, share the same language.
  • Work-related conversations should take place in Slack as much as possible to help other newcomers onboard.

More information about the Buddy Program is available on the Release Managers page.

Communication

Slack

We use the #release-management channel. We strongly encourage raising questions in the channel rather than via direct messages, to avoid duplicating conversations and drive transparency.

Mailing List

The kubernetes-sig-release@ mailing list is available for topics that are too complex for Slack or GitHub.

Meetings

Release Engineering meetings take place every other Tuesday at 7:30am PT / 14:30 UTC and last 60 minutes. Meeting agendas and notes are available here. Meetings are recorded and follow the Kubernetes Code of Conduct.

How We Work

We are biased toward asynchronous communication, but use meetings, Zoom calls, and Slack whenever questions require discussion.

Communicating Decisions

We communicate decisions through:

Pull Request Flow

  • Reviewer gives /lgtm.
  • Approver gives /approve.
  • If unsure about changes, open the PR with a hold (do-not-merge/hold) to allow discussion.
  • We do not bypass the "at least one reviewer" rule.

Availability and Handoffs

  • We do not require people to work on nights and weekends. We do not cut releases on Mondays to preserve weekends.
  • If you cannot finish something, bring it up in Slack. If no one responds within 2-3 days, cc @leads. You can also raise it at the Release Engineering meeting.
  • Do not reassign work to others without communication first.

Release Notes

Multiple teams are involved in the creation and publishing of release notes across different targets.

graph LR
    subgraph Participants
        RN["Release Notes<br/>(Release Team)"]
        RM["Release Managers"]
        DT["Docs Team<br/>(Release Team)"]
    end

    subgraph Data
        PRs["Pull Requests<br/>(release-note blocks)"]
    end

    subgraph Tooling["Kubernetes Releases Toolbox"]
        RNT["release-notes tool"]
        KRL["krel release-notes"]
    end

    subgraph Consumers
        RNW["Release Notes Website<br/>(relnotes.k8s.io)"]
        CHG["CHANGELOG<br/>(k/kubernetes)"]
        DOC["Official Documentation<br/>(kubernetes.io)"]
        SIG["SIG Release<br/>(sig-release repo)"]
    end

    PRs --> RNT
    PRs --> KRL
    RN -->|"curates"| PRs
    RM -->|"runs"| KRL
    RNT --> RNW
    KRL --> CHG
    KRL --> SIG
    DT -->|"updates"| DOC
    CHG -->|"references"| DOC

During the release cycle, the Release Notes sub-team of the Release Team continuously creates drafted Markdown and JSON versions of the ongoing release. The Release Notes Website as well as this repository are updated throughout the cycle.

The Release Managers update kubernetes/kubernetes throughout the release cycle. This happens as part of the release cuts in an automated fashion via krel. The release notes are generated from structured release note blocks in pull request descriptions. The release-notes tool and krel release-notes validate subcommand are used to collect and validate release notes.

The Documentation sub-team of the Release Team ensures that the official kubernetes.io website gets updated after the final release version has been cut.

Patch releases happen on their own cadence, separate from the active release schedule. The Release Managers take care of updating the relevant repositories during a patch release.

Schedule of Recurring Work

Weekly

  • Cherry pick triage and approval
  • Provide status updates at Release Team meetings

Bimonthly

  • k/release updates (Go dependencies, semver tags)

Monthly

  • Patch releases for the supported minor versions
    • Notify the community of the pending deadline a week before
    • Generate and share cherry pick status reports
    • Communicate ahead of the final release from a release branch
    • Deprovision CI for the oldest release branch after its last release
  • Go version triage per the Go handbook

Ongoing

  • Cut prereleases (Alpha, Beta, Release Candidate) for the minor release in development

Ad Hoc/As Needed

  • Update Go versions in Kubernetes
  • Update core Kubernetes base images (CRI tools, CNI plugins, OS base images, distroless-iptables)
  • Publishing bot updates
  • Curation of the base image exception list