Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kubernetes/release

Release infrastructure for Kubernetes and related components
https://github.com/kubernetes/release

kubernetes release-infrastructure

Last synced: 5 days ago
JSON representation

Release infrastructure for Kubernetes and related components

Awesome Lists containing this project

README

        

# Kubernetes Release Tooling

[![PkgGoDev](https://pkg.go.dev/badge/k8s.io/release)](https://pkg.go.dev/k8s.io/release)
[![Go Report Card](https://goreportcard.com/badge/k8s.io/release)](https://goreportcard.com/report/k8s.io/release)
[![Slack](https://img.shields.io/badge/Slack-%23release--management-blueviolet)](https://kubernetes.slack.com/archives/C2C40FMNF)

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`.

- [Release Creation](#release-creation)
- [Release Management](#release-management)
- [`krel`](#krel)
- [`schedule-builder`](#schedule-builder)
- [Artifact Management](#artifact-management)
- [`kpromo`](#kpromo)
- [End User](#end-user)
- [`bom`](#bom)
- [`release-notes`](#release-notes)
- [`gcbuilder`](#gcbuilder)
- [`publish-release`](#publish-release)
- [Legacy](#legacy)
- [`push-build.sh`](#push-buildsh)
- [Contributing](#contributing)

**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](https://github.com/goreleaser/goreleaser) GitHub action will attach
all available binary artifacts to it automatically. To publish those artifacts
to our [`k8s-artifacts-sig-release` GCS bucket](https://console.cloud.google.com/storage/browser/k8s-artifacts-sig-release),
run the following [kpromo](https://github.com/kubernetes-sigs/promo-tools)
command for the new `$TAG`:

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

The release notes can be generated by using the
[release-notes](cmd/release-notes) tool from this repository, which is also
available as binary artifact:

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

## Release Management

### [`krel`](/cmd/krel)

**K**ubernetes **rel**ease Toolbox: tooling for releasing Kubernetes

Status: Feature Complete

Audience: [Release Managers][release-managers]

Details: [Documentation](/docs/krel/README.md)

### [`schedule-builder`](/cmd/schedule-builder)

Generate a Markdown schedule for Kubernetes releases.

Status: In Progress

Audience: [Release Managers][release-managers]

Details: [Documentation](/cmd/schedule-builder/README.md)

## Artifact Management

### [`kpromo`](https://sigs.k8s.io/promo-tools/cmd/kpromo)

**K**ubernetes artifact **promo**tion tooling: tooling for promoting artifacts

Status: In Progress

Audience: [Release Managers][release-managers] and subproject maintainers
responsible for promoting file or container artifacts

Details: [Documentation](https://sigs.k8s.io/promo-tools/README.md#kpromo)

## End User

### [`bom`](https://sigs.k8s.io/bom)

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

Details: [Documentation](https://sigs.k8s.io/bom/README.md)

### [`release-notes`](/cmd/release-notes)

Scrape GitHub pull requests for release notes.

Status: Feature Complete

Details: [Documentation](/cmd/release-notes/README.md)

### [`gcbuilder`](/cmd/gcbuilder)

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

Status: Unused

Details: [Documentation](/cmd/gcbuilder/README.md)

### [`publish-release`](/cmd/publish-release)

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

Details: [Documentation](cmd/publish-release/README.md)

## Legacy

### [`push-build.sh`](push-build.sh)

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

Status: Deprecated (but still in use)

Audience: [Release Managers][release-managers], Prowjobs

## Contributing

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for instructions on how to contribute.

[kubernetes/kubernetes]: https://git.k8s.io/kubernetes
[Branch Manager Handbook]: https://git.k8s.io/sig-release/release-engineering/role-handbooks/branch-manager.md
[release-managers]: https://git.k8s.io/website/content/en/releases/release-managers.md