diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index c2cf44f242..2feb3cdb2d 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -233,7 +233,13 @@ aliases: - mrbobbytables - nikhita - parispittman - # authoritative source: git.k8s.io/release/OWNERS_ALIASES + # authoritative source: https://git.k8s.io/sig-release/OWNERS_ALIASES + sig-release-leads: + - hasheddan # SIG Technical Lead + - jeremyrickard # SIG Technical Lead + - justaugustus # SIG Chair + - LappleApple # SIG Program Manager + - saschagrunert # SIG Chair release-engineering-approvers: - cpanato # Release Manager - hasheddan # subproject owner / Release Manager @@ -244,9 +250,10 @@ aliases: release-engineering-reviewers: - ameukam # Release Manager Associate - jimangel # Release Manager Associate - - markyjackson-taulia # Release Manager Associate - mkorbi # Release Manager Associate + - palnabarun # Release Manager Associate - onlydole # Release Manager Associate - sethmccombs # Release Manager Associate + - thejoycekung # Release Manager Associate - verolop # Release Manager Associate - - wilsonehusin # Release Manager Associate \ No newline at end of file + - wilsonehusin # Release Manager Associate diff --git a/content/en/releases/OWNERS b/content/en/releases/OWNERS index bf258efe7c..25d2d0a271 100644 --- a/content/en/releases/OWNERS +++ b/content/en/releases/OWNERS @@ -9,7 +9,9 @@ reviewers: approvers: - sig-docs-en-owners + - sig-release-leads - release-engineering-approvers labels: -- sig/release \ No newline at end of file +- sig/release +- area/release-eng diff --git a/content/en/releases/patch-releases.md b/content/en/releases/patch-releases.md index 4c4770377a..85951742ab 100644 --- a/content/en/releases/patch-releases.md +++ b/content/en/releases/patch-releases.md @@ -1,15 +1,7 @@ --- title: Patch Releases type: docs -auto_generated: true --- - - -{{< warning >}} -This content is auto-generated and links may not function. The source of the document is located [here](https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md). -{{< /warning >}} - -# Kubernetes Patch Releases Schedule and team contact information for Kubernetes patch releases. @@ -30,24 +22,24 @@ See the [Release Managers page][release-managers] for full contact details on th Please give us a business day to respond - we may be in a different timezone! -In between releases the team is looking at incoming cherry-pick +In between releases the team is looking at incoming cherry pick requests on a weekly basis. The team will get in touch with submitters via GitHub PR, SIG channels in Slack, and direct messages in Slack and [email](mailto:release-managers-private@kubernetes.io) if there are questions on the PR. -## Cherry-Picks +## Cherry picks -Please follow the [cherry-pick process]. +Please follow the [cherry pick process][cherry-picks]. -Cherry-picks must be merge-ready in GitHub with proper labels (eg: -approved, lgtm, release note) and passing CI tests ahead of the -cherry-pick deadline. This is typically two days before the target +Cherry picks must be merge-ready in GitHub with proper labels (e.g., +`approved`, `lgtm`, `release-note`) and passing CI tests ahead of the +cherry pick deadline. This is typically two days before the target release, but may be more. Earlier PR readiness is better, as we -need time to get CI signal after merging your cherry-picks ahead +need time to get CI signal after merging your cherry picks ahead of the actual release. -Cherry-pick PRs which miss merge criteria will be carried over and tracked +Cherry pick PRs which miss merge criteria will be carried over and tracked for the next patch release. ## Support Period @@ -86,9 +78,10 @@ releases may also occur in between these. | Monthly Patch Release | Target date | | --- | --- | -| May 2021 | 2021-05-12 | | June 2021 | 2021-06-16 | | July 2021 | 2021-07-14 | +| August 2021 | 2021-08-11 | +| September 2021 | 2021-09-15 | ## Detailed Release History for Active Branches @@ -100,6 +93,7 @@ End of Life for **1.21** is **2022-06-28** | PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | |--- |--- |--- | +| 1.21.2 | 2021-06-12 | 2021-06-16 | | 1.21.1 | 2021-05-07 | 2021-05-12 | ### 1.20 @@ -110,6 +104,7 @@ End of Life for **1.20** is **2022-02-28** | PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | |--- |--- |--- | +| 1.20.8 | 2021-06-12 | 2021-06-16 | | 1.20.7 | 2021-05-07 | 2021-05-12 | | 1.20.6 | 2021-04-09 | 2021-04-14 | | 1.20.5 | 2021-03-12 | 2021-03-17 | @@ -126,6 +121,7 @@ End of Life for **1.19** is **2021-10-28** | PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | |--- |--- |--- | +| 1.19.12 | 2021-06-12 | 2021-06-16 | | 1.19.11 | 2021-05-07 | 2021-05-12 | | 1.19.10 | 2021-04-09 | 2021-04-14 | | 1.19.9 | 2021-03-12 | 2021-03-17 | @@ -138,40 +134,13 @@ End of Life for **1.19** is **2021-10-28** | 1.19.2 | 2020-09-11 | 2020-09-16 | | 1.19.1 | 2020-09-04 | 2020-09-09 | -### 1.18 - -**1.18** enters maintenance mode on **2021-04-28** - -End of Life for **1.18** is **2021-05-12** - -| PATCH RELEASE | CHERRY PICK DEADLINE | TARGET DATE | -|--- |--- |--- | -| 1.18.19 | 2021-05-07 | 2021-05-12 | -| 1.18.18 | 2021-04-09 | 2021-04-14 | -| 1.18.17 | 2021-03-12 | 2021-03-17 | -| 1.18.16 | 2021-02-12 | 2021-02-17 | -| 1.18.15 | 2021-01-08 | 2021-01-13 | -| 1.18.14 | [Tagging Issue](https://groups.google.com/g/kubernetes-dev/c/dNH2yknlCBA) | 2020-12-18 | -| 1.18.13 | 2020-12-04 | 2020-12-09 | -| 1.18.12 | N/A | 2020-11-12 | -| 1.18.11 | [No-op release](https://groups.google.com/g/kubernetes-dev/c/nJix1xLQvZE) | 2020-11-11 | -| 1.18.10 | 2020-10-09 | 2020-10-14 | -| 1.18.9 | 2020-09-11 | 2020-09-16 | -| 1.18.8 | N/A | 2020-08-13 | -| 1.18.7 | 2020-08-07 | 2020-08-12 | -| 1.18.6 | 2020-07-10 | 2020-07-15 | -| 1.18.5 | 2020-06-25 | 2020-06-26 | -| 1.18.4 | 2020-06-12 | 2020-06-17 | -| 1.18.3 | 2020-05-15 | 2020-05-20 | -| 1.18.2 | 2020-04-13 | 2020-04-16 | -| 1.18.1 | 2020-04-06 | 2020-04-08 | - ## Non-Active Branch History These releases are no longer supported. | Minor Version | Final Patch Release | EOL date | | --- | --- | --- | +| 1.18 | 1.18.19 | 2021-05-12 | | 1.17 | 1.17.17 | 2021-01-13 | | 1.16 | 1.16.15 | 2020-09-02 | | 1.15 | 1.15.12 | 2020-05-06 | @@ -189,7 +158,7 @@ These releases are no longer supported. | 1.3 | 1.3.10 | 2016-11-01 | | 1.2 | 1.2.7 | 2016-10-23 | -[cherry-pick process]: https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md +[cherry-picks]: https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md [release-managers]: /release-managers.md -[release process description]: https://git.k8s.io/community/contributors/devel/sig-release/release.md +[release process description]: /release.md [yearly-support]: https://git.k8s.io/enhancements/keps/sig-release/1498-kubernetes-yearly-support-period/README.md diff --git a/content/en/releases/release-managers.md b/content/en/releases/release-managers.md new file mode 100644 index 0000000000..e8b895def6 --- /dev/null +++ b/content/en/releases/release-managers.md @@ -0,0 +1,213 @@ +--- +title: Release Managers +type: docs +--- + +"Release Managers" is an umbrella term that encompasses the set of Kubernetes +contributors responsible for maintaining release branches, tagging releases, +and building/packaging Kubernetes. + +The responsibilities of each role are described below. + +- [Contact](#contact) +- [Handbooks](#handbooks) +- [Release Managers](#release-managers) + - [Becoming a Release Manager](#becoming-a-release-manager) +- [Release Manager Associates](#release-manager-associates) + - [Becoming a Release Manager Associate](#becoming-a-release-manager-associate) +- [Build Admins](#build-admins) +- [SIG Release Leads](#sig-release-leads) + - [Chairs](#chairs) + - [Technical Leads](#technical-leads) + +## Contact + +| Mailing List | Slack | Visibility | Usage | Membership | +| --- | --- | --- | --- | --- | +| [release-managers@kubernetes.io](mailto:release-managers@kubernetes.io) | [#release-management](https://kubernetes.slack.com/messages/CJH2GBF7Y) (channel) / @release-managers (user group) | Public | Public discussion for Release Managers | All Release Managers (including Associates, Build Admins, and SIG Chairs) | +| [release-managers-private@kubernetes.io](mailto:release-managers-private@kubernetes.io) | N/A | Private | Private discussion for privileged Release Managers | Release Managers, SIG Release leadership | +| [security-release-team@kubernetes.io](mailto:security-release-team@kubernetes.io) | [#security-release-team](https://kubernetes.slack.com/archives/G0162T1RYHG) (channel) / @security-rel-team (user group) | Private | Security release coordination with the Product Security Committee | [security-discuss-private@kubernetes.io](mailto:security-discuss-private@kubernetes.io), [release-managers-private@kubernetes.io](mailto:release-managers-private@kubernetes.io) | + +## Handbooks + +**NOTE: The Patch Release Team and Branch Manager handbooks will be de-duplicated at a later date.** + +- [Patch Release Team][handbook-patch-release] +- [Branch Managers][handbook-branch-mgmt] +- [Build Admins][handbook-packaging] + +## Release Managers + +**Note:** The documentation might refer to the Patch Release Team and the +Branch Management role. Those two roles were consolidated into the +Release Managers role. + +Minimum requirements for Release Managers and Release Manager Associates are: + +- Familiarity with basic Unix commands and able to debug shell scripts. +- Familiarity with branched source code workflows via `git` and associated + `git` command line invocations. +- General knowledge of Google Cloud (Cloud Build and Cloud Storage). +- Open to seeking help and communicating clearly. +- Kubernetes Community [membership][community-membership] + +Release Managers are responsible for: + +- Coordinating and cutting Kubernetes releases: + - Patch releases (`x.y.z`, where `z` > 0) + - Minor releases (`x.y.z`, where `z` = 0) + - Pre-releases (alpha, beta, and release candidates) + - Working with the [Release Team][release-team] through each + release cycle + - Setting the [schedule and cadence for patch releases][patches] +- Maintaining the release branches: + - Reviewing cherry picks + - Ensuring the release branch stays healthy and that no unintended patch + gets merged +- Mentoring the [Release Manager Associates](#associates) group +- Actively developing features and maintaining the code in k/release +- Supporting Release Manager Associates and contributors through actively + participating in the Buddy program + - Check in monthly with Associates and delegate tasks, empower them to cut + releases, and mentor + - Being available to support Associates in onboarding new contributors e.g., + answering questions and suggesting appropriate work for them to do + +This team at times works in close conjunction with the +[Product Security Committee][psc] and therefore should abide by the guidelines +set forth in the [Security Release Process][security-release-process]. + +GitHub Access Controls: [@kubernetes/release-managers](https://github.com/orgs/kubernetes/teams/release-managers) + +GitHub Mentions: [@kubernetes/release-engineering](https://github.com/orgs/kubernetes/teams/release-engineering) + +- Adolfo García Veytia ([@puerco](https://github.com/puerco)) +- Carlos Panato ([@cpanato](https://github.com/cpanato)) +- Daniel Mangum ([@hasheddan](https://github.com/hasheddan)) +- Marko Mudrinić ([@xmudrii](https://github.com/xmudrii)) +- Sascha Grunert ([@saschagrunert](https://github.com/saschagrunert)) +- Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) + +### Becoming a Release Manager + +To become a Release Manager, one must first serve as a Release Manager +Associate. Associates graduate to Release Manager by actively working on +releases over several cycles and: + +- demonstrating the willingness to lead +- tag-teaming with Release Managers on patches, to eventually cut a release + independently + - because releases have a limiting function, we also consider substantial + contributions to image promotion and other core Release Engineering tasks +- questioning how Associates work, suggesting improvements, gathering feedback, + and driving change +- being reliable and responsive +- leaning into advanced work that requires Release Manager-level access and + privileges to complete + +## Release Manager Associates + +Release Manager Associates are apprentices to the Release Managers, formerly +referred to as Release Manager shadows. They are responsible for: + +- Patch release work, cherry pick review +- Contributing to k/release: updating dependencies and getting used to the + source codebase +- Contributing to the documentation: maintaining the handbooks, ensuring that + release processes are documented +- With help from a release manager: working with the Release Team during the + release cycle and cutting Kubernetes releases +- Seeking opportunities to help with prioritization and communication + - Sending out pre-announcements and updates about patch releases + - Updating the calendar, helping with the release dates and milestones from + the [release cycle timeline][k-sig-release-releases] +- Through the Buddy program, onboarding new contributors and pairing up with + them on tasks + +GitHub Mentions: @kubernetes/release-engineering + +- Arnaud Meukam ([@ameukam](https://github.com/ameukam)) +- Jim Angel ([@jimangel](https://github.com/jimangel)) +- Joyce Kung ([@thejoycekung](https://github.com/thejoycekung)) +- Max Körbächer ([@mkorbi](https://github.com/mkorbi)) +- Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) +- Seth McCombs ([@sethmccombs](https://github.com/sethmccombs)) +- Taylor Dolezal ([@onlydole](https://github.com/onlydole)) +- Verónica López ([@verolop](https://github.com/verolop)) +- Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin)) + +### Becoming a Release Manager Associate + +Contributors can become Associates by demonstrating the following: + +- consistent participation, including 6-12 months of active release + engineering-related work +- experience fulfilling a technical lead role on the Release Team during a + release cycle + - this experience provides a solid baseline for understanding how SIG Release + works overall—including our expectations regarding technical skills, + communications/responsiveness, and reliability +- working on k/release items that improve our interactions with Testgrid, + cleaning up libraries, etc. + - these efforts require interacting and pairing with Release Managers and + Associates + +## Build Admins + +Build Admins are (currently) Google employees with the requisite access to +Google build systems/tooling to publish deb/rpm packages on behalf of the +Kubernetes project. They are responsible for: + +- Building, signing, and publishing the deb/rpm packages +- Being the interlock with Release Managers (and Associates) on the final steps +of each minor (1.Y) and patch (1.Y.Z) release + +GitHub team: [@kubernetes/build-admins](https://github.com/orgs/kubernetes/teams/build-admins) + +- Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) +- Amit Watve ([@amwat](https://github.com/amwat)) +- Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) +- Grant McCloskey ([@MushuEE](https://github.com/MushuEE)) + +## SIG Release Leads + +SIG Release Chairs and Technical Leads are responsible for: + +- The governance of SIG Release +- Leading knowledge exchange sessions for Release Managers and Associates +- Coaching on leadership and prioritization + +They are mentioned explicitly here as they are owners of the various +communications channels and permissions groups (GitHub teams, GCP access) for +each role. As such, they are highly privileged community members and privy to +some private communications, which can at times relate to Kubernetes security +disclosures. + +GitHub team: [@kubernetes/sig-release-leads](https://github.com/orgs/kubernetes/teams/sig-release-leads) + +### Chairs + +- Sascha Grunert ([@saschagrunert](https://github.com/saschagrunert)) +- Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) + +### Technical Leads + +- Daniel Mangum ([@hasheddan](https://github.com/hasheddan)) +- Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) + +--- + +Past Branch Managers, can be found in the [releases directory][k-sig-release-releases] +of the kubernetes/sig-release repository within `release-x.y/release_team.md`. + +Example: [1.15 Release Team](https://git.k8s.io/sig-release/releases/release-1.15/release_team.md) + +[community-membership]: https://git.k8s.io/community/community-membership.md#member +[handbook-branch-mgmt]: https://git.k8s.io/sig-release/release-engineering/role-handbooks/branch-manager.md +[handbook-packaging]: https://git.k8s.io/sig-release/release-engineering/packaging.md +[handbook-patch-release]: https://git.k8s.io/sig-release/release-engineering/role-handbooks/patch-release-team.md +[k-sig-release-releases]: https://git.k8s.io/sig-release/releases +[patches]: /patch-releases.md +[psc]: https://git.k8s.io/community/committee-product-security/README.md +[release-team]: https://git.k8s.io/sig-release/release-team/README.md +[security-release-process]: https://git.k8s.io/security/security-release-process.md diff --git a/content/en/releases/release.md b/content/en/releases/release.md index 1632a20473..fa0f5e0b21 100644 --- a/content/en/releases/release.md +++ b/content/en/releases/release.md @@ -1,9 +1,9 @@ --- -title: The Release Cycle +title: Kubernetes Release Cycle type: docs auto_generated: true --- - + {{< warning >}} This content is auto-generated and links may not function. The source of the document is located [here](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md). diff --git a/data/releases/OWNERS b/data/releases/OWNERS index bf258efe7c..25d2d0a271 100644 --- a/data/releases/OWNERS +++ b/data/releases/OWNERS @@ -9,7 +9,9 @@ reviewers: approvers: - sig-docs-en-owners + - sig-release-leads - release-engineering-approvers labels: -- sig/release \ No newline at end of file +- sig/release +- area/release-eng diff --git a/data/releases/schedule.yaml b/data/releases/schedule.yaml index aa0d0ae546..6b2c3c1a8f 100644 --- a/data/releases/schedule.yaml +++ b/data/releases/schedule.yaml @@ -1,16 +1,22 @@ schedules: - release: 1.21 - next: 1.21.1 - cherryPickDeadline: 2021-05-07 - targetDate: 2021-05-12 + next: 1.21.2 + cherryPickDeadline: 2021-06-12 + targetDate: 2021-06-16 endOfLifeDate: 2022-04-30 previousPatches: + - release: 1.21.1 + cherryPickDeadline: 2021-05-07 + targetDate: 2021-05-12 - release: 1.20 - next: 1.20.7 - cherryPickDeadline: 2021-05-07 - targetDate: 2021-05-12 + next: 1.20.8 + cherryPickDeadline: 2021-06-12 + targetDate: 2021-06-16 endOfLifeDate: 2021-12-30 previousPatches: + - release: 1.20.7 + cherryPickDeadline: 2021-05-07 + targetDate: 2021-05-12 - release: 1.20.6 cherryPickDeadline: 2021-04-09 targetDate: 2021-04-14 @@ -30,11 +36,14 @@ schedules: cherryPickDeadline: "Tagging Issue https://groups.google.com/g/kubernetes-dev/c/dNH2yknlCBA" targetDate: 2020-12-18 - release: 1.19 - next: 1.19.11 - cherryPickDeadline: 2021-05-07 - targetDate: 2021-05-12 + next: 1.19.12 + cherryPickDeadline: 2021-06-12 + targetDate: 2021-06-16 endOfLifeDate: 2021-09-30 previousPatches: + - release: 1.19.11 + cherryPickDeadline: 2021-05-07 + targetDate: 2021-05-12 - release: 1.19.10 cherryPickDeadline: 2021-04-09 targetDate: 2021-04-14 diff --git a/scripts/releng/OWNERS b/scripts/releng/OWNERS new file mode 100644 index 0000000000..25d2d0a271 --- /dev/null +++ b/scripts/releng/OWNERS @@ -0,0 +1,17 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# This is the directory for English source content. +# Teams and members are visible at https://github.com/orgs/kubernetes/teams. + +reviewers: + - sig-docs-en-reviews + - release-engineering-reviewers + +approvers: + - sig-docs-en-owners + - sig-release-leads + - release-engineering-approvers + +labels: +- sig/release +- area/release-eng diff --git a/scripts/releng/update-release-info.sh b/scripts/releng/update-release-info.sh new file mode 100755 index 0000000000..2cb601552e --- /dev/null +++ b/scripts/releng/update-release-info.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# release.md +#################################### +cat << EOF > content/en/releases/release.md +--- +title: Kubernetes Release Cycle +type: docs +auto_generated: true +--- + + +{{< warning >}} +This content is auto-generated and links may not function. The source of the document is located [here](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md). +{{< /warning >}} + +EOF + +curl --retry 3 https://raw.githubusercontent.com/kubernetes/community/master/contributors/devel/sig-release/release.md >> content/en/releases/release.md diff --git a/scripts/update-release-info.sh b/scripts/update-release-info.sh deleted file mode 100755 index 96846a3cf4..0000000000 --- a/scripts/update-release-info.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -# patch-releases.md -#################################### -cat << EOF > content/en/releases/patch-releases.md ---- -title: Patch Releases -type: docs -auto_generated: true ---- - - -{{< warning >}} -This content is auto-generated and links may not function. The source of the document is located [here](https://github.com/kubernetes/sig-release/blob/master/releases/patch-releases.md). -{{< /warning >}} - -EOF - -curl --retry 3 https://raw.githubusercontent.com/kubernetes/sig-release/master/releases/patch-releases.md >> content/en/releases/patch-releases.md - - -# release.md -#################################### -cat << EOF > content/en/releases/release.md ---- -title: The Release Cycle -type: docs -auto_generated: true ---- - - -{{< warning >}} -This content is auto-generated and links may not function. The source of the document is located [here](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md). -{{< /warning >}} - -EOF - -curl --retry 3 https://raw.githubusercontent.com/kubernetes/community/master/contributors/devel/sig-release/release.md >> content/en/releases/release.md - - -# schedule.yaml -#################################### -curl --retry 3 https://raw.githubusercontent.com/kubernetes/sig-release/master/releases/schedule.yaml > data/releases/schedule.yaml