While the Enhancements Lead serves as a member of the Release Team (a subproject of SIG Release), this role is also a liaison to sig-arch-Enhancements subproject of SIG Architecture.
An Enhancements Lead holds the following responsibilities:
- Maintain the active status of Enhancements within kubernetes/enhancements
- Facilitate communication between Enhancement Owners, and SIG leadership, as necessary
- Collate the major themes of the release, including but not limited to:
- new enhancements
- long-awaited enhancements
- enhancements moving into GA
- enhancement deprecations
- notable changes to existing behaviors
- Assist in Communications activities (in conjunction with the Communications Lead & the CNCF Communications team):
- Draft and / or review https://kubernetes.io/blog/ release announcement post, leveraging the themes collected across the release cycle e.g., 1.17 Announcement
- Engage with media analysts during the embargo period to discuss the release themes
- CNCF Kubernetes Release webinar
- Identify potential contributors for the “5 Days of Kubernetes” blog series
- Identify candidates to assume the Enhancements Lead role (according to the Release Team selection process) in the following release cycle
- Chose Enhancement shadows whom you believe would be a good fit for succession and help mentor them throughout the release cycle
Before continuing on to the Enhancements specific requirements listed below, please review and work through the tasks in the Release Team Onboarding Guide.
- MUST have served on the Release Team in a previous capacity, ideally as an Enhancements Shadow
- MUST be a member of the Release Team Google Group
- List of members for this group is managed in git. Create a pull request against kuberenetes/k8s.io repo to include both Lead and Shadows under
release-team
group in k8s.io/sig-release/group.yaml
- List of members for this group is managed in git. Create a pull request against kuberenetes/k8s.io repo to include both Lead and Shadows under
- MUST be a member of the SIG Release Google Group
- MUST be a member of the SIG Architecture Google Group
- MUST be a member of the Kubernetes Enhancements Google Group
Helpful characteristics of an Enhancements Lead include:
- experience with the Kubernetes community, code layout, ecosystem projects, organizational norms, governance, SIG structure, architecture, and release process
- product / project / program management experience
- release management experience
Approximate Time Commitments
- Beginning of the cycle through enhancement freeze: 6-10 hours a week fluctuating based on how many SIG meetings need to be attended
- Enhancement Freeze through Code Freeze: 4-7 hours a week
- Code Freeze through Release Day: 1-4 hours a week
The selected shadows should be:
- Interested in learning more about the Kubernetes release process.
- Able to dedicate a couple hours each week to attending the Release meeting in addition to helping with weekly tasks.
The shadows should be selected keeping in mind that one of them may eventually be taking up the Enhancements Lead role. It is important to delegate tasks and give the shadows broad exposure to the different aspects of the role.
Ensure that the previous Enhancements Lead has given (or facilitated getting) you access to:
- GitHub teams
- enhancements (This group should be used for Enhancement Subproject related pinging only and not for Release Team Enhancements Group)
- milestone-maintainers
- Access to the previous Kubernetes Release Enhancements Tracking Sheet.
As mentioned previously, the Enhancements Lead role encompasses several cross-functional responsibilities with sig-arch-Enhancements subproject of SIG Architecture.
The process of maintaining an enhancement in Kubernetes is documented in the kubernetes/enhancements repo. Any questions / concerns / suggestions for improvement to the Enhancements process should be raised as GitHub issues / PRs to k/enhancements.
It is important that this process be followed and documentation remain up-to-date as the Enhancements repo is the primary ingress point for contributors interested in tracking enhancements.
Note: The week #n timings given below are tentative. There are special releases like Kubernetes 1.19 or releases at the end of the year which may not strictly conform to that.
- Duplicate the previous enhancement collection spreadsheet into your own Google Drive and adjust it for the current milestone. Enhancements Tracking sheet is shortlinked with the pattern
k8sxyy-enhancements
e.g., http://bit.ly/k8s113-enhancements. Create a free account on bitly to create a shortlink for the new enhancement collection spreadsheet. - Clean up the spreadsheet by removing all currently tracked issues from both the
Enhancements
andDocs
tabs - Update the permissions on the enhancement collection sheet
- Using the Share settings available in the top right of the sheet, enable anyone with the link to view the sheet
- Grant Edit access to yourself (Current Enhancements lead), prior Enhancements lead, release lead, Enhancements shadows, and the SIG Release Leads Google Group
- Add Comment access for the SIG Release Google Group, SIG Docs Google Group, Kubernetes Release Team Google Group, and SIG Leads Google Group.
- Make a pull request to add the shortlinked Enhancement Tracking sheet to the current release page in sig-release
- Find Issues from previous milestone that have graduated to Stable. Remove
tracked/yes
ortracked/no
labels. Check to see if the KEP status has been updated toimplemented
. If it has, close the issue. If it has not, ask the issue contact to both update the KEP status field and close the Enhancement issue once the update PR has merged. - Find Issues labeled
tracked/yes
and change totracked/no
until the Enhancement is ready to be tracked for the upcoming release. - Close previous milestone by ensuring that there are no open issues/PRs in that milestone.
- Gather Shadows to have them read this handbook and give expectations on what the process looks like and their particular role. If possible, try to schedule a call with the shadows to get them accustomed to the team. This helps as a great team building exercise.
- Send an email to the Kubernetes-Dev mailing list and a message to #chairs-and-techleads slack channel with a call for enhancements and how to opt-in to the release.
- Verify issues have k/k PRs associated so they can be referenced and easily tracked. This is going to be critical come Enhancement Freeze and Code Freeze to see the status of the code.
- Work with the Release Lead to introduce yourself, talk about release information, and relay information about opting into the release with SIG Leads.
- Weekly Release meetings require updates of current status. Use the
Feature stats
tab to update the release team on counts of enhancements in good and bad progress. - Start reminding Issue owners that KEPs are required for each enhancement and that KEPs must be in an implementable state by Enhancement Freeze.
- Move data from
KEP Collection
into thedata
tab to be tracked officially for the release - Stay on top of comments in issues when owners respond. Apply correct labels, milestone information, update their status in the sheet if necessary.
- Mark features as
At Risk
if there is no communication, active PRs on the issues, or it is missing other requirements coming into Enhancement Freeze. - Start syncing with Communications Team on giving an induction what's coming up for the release.
- On Freeze day, send an email to Kubernetes-Dev that freeze has happened. "We are at X enhancements, and any new ones will require an exception." Examples 1 2.
- Remove any enhancements that failed to meet the criteria by the Enhancement freeze deadline. Set their status in the sheet to
Removed from Milestone
and use theEnhancements
->Remove Enhancements from Milestone
menu option to move them over to theRemoved from milestone
tab. - Any enhancements removed from the milestone will now require an exception. As exception requests come in, discuss each with the Release Lead (and Shadows) to arrive at an approve/reject decision. Create an exception file in the Release for exceptions Example 1. If a previously removed Enhancement has had their exception Approved, set their status to
Tracked
and use theEnhancements
->Track Removed Enhancements
menu option to move it back to theEnhancements
andDocs
tabs.
- Stay on top of issues and continually monitor them twice a week and look at attached PRs. As Code Freeze gets closer, if there are PRs that have not been merged, move the issue to At Risk. If there is no activity, ping issue owners on either the issue or the k/k PR.
- Monitor issues that are At Risk closely, almost daily. Code Freeze means no new code and keeping tabs on the status of the k/k PR is critical to planning. Make decisions if the enhancement should be deferred and work with SIG Leads to determine the best path forward.
Start planning for the next release while assisting the Release Lead with anything relating to Analyst or Public Relation planning. Work with the Communications Lead to develop major themes for the official Kubernetes blog post.
The source of truth for Enhancements is the data
tab within the tracking sheet.
It contains items that do not often change state. All other tabs are driven off
the data in this tab. It should be kept as up-to-date as possible.
Column | Entry type | Description |
---|---|---|
Issue | Manual | Enhancement Issue Number. |
Name | Generated | Enhancement Issue Name and link. Generated from Issue Number. |
Responder | Manual | Last person to respond on behalf of an Enhancement. |
SIG | Generated* | Owning SIG. Generated from KEP path. If no KEP (PR in flight), requires manual entry. |
KEP | Manual | Link to KEP or KEP PR. |
KEP State | Manual | KEP State (Pending, Implementable etc). |
Completed in Release | Manual | The release in which the Enhancement graduated to stable. |
The Dashboard tab is intended to be an at-a-glance view of the current
Enhancement status from both the perspective of the Enhancements and Docs teams.
It is 100% generated from the Enhancements
and Docs
tabs and should NOT
be updated manually.
Enhancements that are missing any criteria should be labeled as At Risk
. To
help make this easier for the Enhancement team to label. Proposals and KEP State
are color coded indicating their current readiness state.
Proposal
KEP State
Untracked Enhancements are Enhancements that were Pending Inclusion
with either
no response by the Enhancement Freeze deadline or specifically stated that they
should not be included. Once either a response from issue owner stating it should
not be tracked or the Enhancement Freeze deadline occurs, their status should be
set to Untracked
.
Once done, use the Enhancements
-> Removed Untracked Enhancements
menu item
to remove it from the Dashboard
, Enhancements
and Docs
tabs. It will not
be moved over to the Removed from Milestone
tab.
If the Enhancement is being bumped to a later release, set it's state to
Deferred
.
If it is being removed due to missing criteria or lack of response
after being included in the milestone, set its state to Removed from Milestone
.
Once done, use the Enhancements
-> Remove Enhancements from Milestone
menu
item to automatically to move it to the Removed from Milestone
tab removing it
from the Dashboard
, Enhancements
and Docs
tabs.
If a removed item has had an exception granted. Set it's status to Tracked
in
the Removed from Milestone
tab. Then use the Enhancements
->
Track Removed Enhancement
menu option to move it back to the Dashboard
,
Enhancements
, and Docs
tabs.
- If the feature is graduating to
Alpha
, the status can either be Net New/Major Change. But usually when features are introduced to Kubernetes, they are not Major Changes. - If the feature is graduating to
Beta/Stable
, almost always the state is Graduating/Major Change. One exception to that is some features directly jump the hoop to Beta, in that case, the status can be Net New for even a Beta feature.
Feel free to ask the previous enhancements leads about this when in doubt.
For issues where the initial owner is unresponsive, try escalating to the relevant SIG's leadership to determine if the issue is still targeted for the release.
If there is continued unresponsiveness on issues, remove them from the milestone at your discretion.
Exception process is outlined here
- You may be called upon by the communications lead to help with media engagement near the end of the release cycle. Please ensure that if there are any restrictions or training required by your company before engaging that you have completed those ahead of Code Thaw.
- Select who will be the new enhancement lead for the next release. Shadows should be the first source pool. If none are available to lead then look externally through other release team members or members of SIG Architecture Enhancements Subproject
- Generate new Enhancements Tracking sheet with enhancements that were removed from the current milestone
- Enhancements Tracking sheet is shortlinked with the pattern
k8sxyy-enhancements
e.g., http://bit.ly/k8s113-enhancements - Continually work to improve Enhancements process
- Review / update documentation as the release cycle ends
- Close issues marked as stable that made it into the release, only after the corresponding KEPs have been marked
Implemented
- Close milestones that are complete
- Cleanup old milestones
- Populating the Enhancements Tracking sheet is a manual process
- Enhancements issues that are not submitted to k/enhancements are not actively tracked in the context of the Release Team and Release cycle e.g.,
kubeadm
(https://github.com/kubernetes/kubeadm/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Akind%2Ffeature+milestone%3Av1.12+)- out-of-tree Cloud Provider code that may live in
kubernetes-sigs/*
- additional out-of-tree code that may live in the following organizations:
kubernetes
kubernetes-client
kubernetes-csi
kubernetes-incubator
kubernetes-sig-testing
kubernetes-sigs
- Finding consensus on how frequently to triage enhancements
https://groups.google.com/forum/#!topic/kubernetes-dev/5qU8irU7_tE