/release

Release infrastructure for Kubernetes and related components

Primary LanguageGoApache License 2.0Apache-2.0

Kubernetes Release Tooling

PkgGoDev Go Report Card Slack

This repo contains the tooling and infrastructure configurations for creating Kubernetes releases from the kubernetes/kubernetes main repository.

There are several scripts and helpers in this repository a Release Manager will find useful when managing all kinds of releases (alpha, beta, official, rc) across branches.

Golang-based tools can be built via the compile-release-tools script. Individual tools can be installed via go install k8s.io/release/cmd/$TOOL@latest.

Each of the headings below links to a tool's location.

Release Creation

If you create a new release for this repository, then the goreleaser GitHub action will attach all available binary artifacts to it automatically. To publish those artifacts to our k8s-artifacts-sig-release GCS bucket, run the following kpromo command for the new $TAG:

kpromo gh \
    --org kubernetes \
    --repo release \
    --bucket k8s-artifacts-sig-release \
    --tags $TAG

The release notes can be generated by using the release-notes tool from this repository, which is also available as binary artifact:

release-notes \
    --org kubernetes \
    --repo release \
    --required-author "" \
    --start-rev $PREVIOUS_TAG \
    --end-rev $TAG \
    --output release-notes.md

Release Management

Kubernetes release Toolbox: tooling for releasing Kubernetes

Status: Feature Complete

Audience: Release Managers

Details: Documentation

Generate a Markdown schedule for Kubernetes releases.

Status: In Progress

Audience: Release Managers

Details: Documentation

Artifact Management

Kubernetes artifact promotion tooling: tooling for promoting artifacts

Status: In Progress

Audience: Release Managers and subproject maintainers responsible for promoting file or container artifacts

Details: Documentation

End User

Generate SPDX-compliant Bills of Materials for a software project. Supports reading directories, images, files and more.

Details: Documentation

Scrape GitHub pull requests for release notes.

Status: Feature Complete

Details: Documentation

General purpose tool for triggering Google Cloud Build (GCB) runs with substitutions.

Status: Unused

Details: Documentation

A tool to announce software releases. Currently supports updating the release page on GitHub based on templates and updating release artifacts.

Details: Documentation

Legacy

Push a CI build of Kubernetes to Google Cloud Storage (GCS).

Status: Deprecated (but still in use)

Audience: Release Managers, Prowjobs

Contributing

Please see CONTRIBUTING.md for instructions on how to contribute.