Git Product home page Git Product logo

release's Introduction

Kubernetes Release

This repo contains the tooling and infrastructure to create Kubernetes releases from the kubernetes/kubernetes main repository.

Intro

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.

Primary Tools

Most tools in this repo run by default in mock mode to allow for ease in development and testing.

The tools also include a familiar *nix-style man page as the header of the file, accessed via the command-line via -man.

Ex.

$ gcbmgr -man

gcbmgr

Stage and release via GCB (Google Cloud Builder). This is the main entry point for release managers for producing releases in the cloud. All release types can be staged and later released using this method.

anago

The main driver for created staged builds and releases. This is what runs inside GCB after a job is submitted using gcbmgr.

branchff

The branch fast-forward tool used between after a new branch as been created.

See the [Playbook](ADD LINK) for more details.

Common Workflows

Alpha release

Stage it

$ gcbmgr stage master

Release it (The complete invocation below is output at the end of the staging log)

$ gcbmgr release master --buildversion=<staged version>

Announce it (The complete invocation below is output at the end of the release log)

$ release-notify <release version>

Official release

Stage it

$ gcbmgr stage release-1.10 --official

Release it (The complete invocation below is output at the end of the staging log)

$ gcbmgr release release-1.10 --buildversion=<staged version>

Announce it (The complete invocation below is output at the end of the release log)

$ release-notify <release version>

Release with --nomock

The above example workflows run mock versions of the release. To produce a fully deployed and announced release, add --nomock to the command line.

All Tools

  • gcbmgr : GCB manager - find status and initiate builds
  • anago : Release Tool
  • branchff : Fast-forward branching helper
  • find_green_build : Ask Jenkins for a good build to use
  • relnotes : Scrape github for release notes (See below for more info)
  • prin : What tags/releases is my PR IN?
  • changelog-update : Update CHANGELOG.md version entries by rescanning github for text and label changes
  • push-build.sh : Push a developer (or CI) build up to GCS
  • script-template : Generate a script template in the kubernetes/release ecosystem

Release Notes Gathering

# get details on how to use the tool
$ relnotes -man
$ cd /kubernetes

# Show release notes from the last release on a branch to HEAD
$ relnotes

# Show release notes from the last release on a specific branch to branch HEAD
$ relnotes --branch=release-1.10

# Show release notes between two specific releases
$ relnotes v1.10.0..v1.10.1 --branch=release-1.10

Building Linux Packages

For Debian

You can build the deb packages in a Docker container like this:

docker build --tag=debian-packager debian
docker run --volume="$(pwd)/debian:/src" debian-packager

The build runs for a while, after it's done you will find the output in debian/bin.

For Fedora, CentOS, Red Hat Enterprise Linux

You can build the rpm packages in a Docker container with:

cd rpm
./docker-build.sh

Resulting rpms, and a pre-generated yum repository will be generated in rpm/output/x86_64.

release's People

Contributors

bgrant0607 avatar brendandburns avatar caesarxuchao avatar calebamiles avatar david-mcmahon avatar dgoodwin avatar dixudx avatar enisoc avatar errordeveloper avatar fejta avatar ixdy avatar jbeda avatar jessfraz avatar kad avatar krzyzacy avatar liggitt avatar lukemarsden avatar luxas avatar marpaia avatar mattymo avatar mbohlool avatar mikedanese avatar mkumatag avatar mtaufen avatar pipejakob avatar roycaihw avatar saad-ali avatar spiffxp avatar xiangpengzhao avatar zmerlynn avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.