Merge pull request #47902 from fsmunoz/sig-arch-enhancements-spotlight
Add SIG Architecture Enhancements spotlightpull/49477/head
commit
432738dec1
|
@ -0,0 +1,153 @@
|
||||||
|
---
|
||||||
|
layout: blog
|
||||||
|
title: "Spotlight on SIG Architecture: Enhancements"
|
||||||
|
slug: sig-architecture-enhancements
|
||||||
|
canonicalUrl: https://www.kubernetes.dev/blog/2025/01/21/sig-architecture-enhancements
|
||||||
|
date: 2025-01-21
|
||||||
|
author: "Frederico Muñoz (SAS Institute)"
|
||||||
|
---
|
||||||
|
|
||||||
|
_This is the fourth interview of a SIG Architecture Spotlight series that will cover the different
|
||||||
|
subprojects, and we will be covering [SIG Architecture:
|
||||||
|
Enhancements](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md#enhancements)._
|
||||||
|
|
||||||
|
In this SIG Architecture spotlight we talked with [Kirsten
|
||||||
|
Garrison](https://github.com/kikisdeliveryservice), lead of the Enhancements subproject.
|
||||||
|
|
||||||
|
## The Enhancements subproject
|
||||||
|
|
||||||
|
**Frederico (FSM): Hi Kirsten, very happy to have the opportunity to talk about the Enhancements
|
||||||
|
subproject. Let's start with some quick information about yourself and your role.**
|
||||||
|
|
||||||
|
**Kirsten Garrison (KG)**: I’m a lead of the Enhancements subproject of SIG-Architecture and
|
||||||
|
currently work at Google. I first got involved by contributing to the service-catalog project with
|
||||||
|
the help of [Carolyn Van Slyck](https://github.com/carolynvs). With time, [I joined the Release
|
||||||
|
team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.17/release_team.md),
|
||||||
|
eventually becoming the Enhancements Lead and a Release Lead shadow. While on the release team, I
|
||||||
|
worked on some ideas to make the process better for the SIGs and Enhancements team (the opt-in
|
||||||
|
process) based on my team’s experiences. Eventually, I started attending Subproject meetings and
|
||||||
|
contributing to the Subproject’s work.
|
||||||
|
|
||||||
|
**FSM: You mentioned the Enhancements subproject: how would you describe its main goals and areas of
|
||||||
|
intervention?**
|
||||||
|
|
||||||
|
**KG**: The [Enhancements
|
||||||
|
Subproject](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md#enhancements)
|
||||||
|
primarily concerns itself with the [Kubernetes Enhancement
|
||||||
|
Proposal](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md)
|
||||||
|
(_KEP_ for short)—the "design" documents required for all features and significant changes
|
||||||
|
to the Kubernetes project.
|
||||||
|
|
||||||
|
## The KEP and its impact
|
||||||
|
|
||||||
|
**FSM: The improvement of the KEP process was (and is) one in which SIG Architecture was heavily
|
||||||
|
involved. Could you explain the process to those that aren’t aware of it?**
|
||||||
|
|
||||||
|
**KG**: [Every release](https://kubernetes.io/releases/release/#the-release-cycle), the SIGs let the
|
||||||
|
Release Team know which features they intend to work on to be put into the release. As mentioned
|
||||||
|
above, the prerequisite for these changes is a KEP - a standardized design document that all authors
|
||||||
|
must fill out and approve in the first weeks of the release cycle. Most features [will move
|
||||||
|
through 3
|
||||||
|
phases](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/#feature-stages):
|
||||||
|
alpha, beta and finally GA so approving a feature represents a significant commitment for the SIG.
|
||||||
|
|
||||||
|
The KEP serves as the full source of truth of a feature. The [KEP
|
||||||
|
template](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/README.md)
|
||||||
|
has different requirements based on what stage a feature is in, but it generally requires a detailed
|
||||||
|
discussion of the design and the impact as well as providing artifacts of stability and
|
||||||
|
performance. The KEP takes quite a bit of iterative work between authors, SIG reviewers, api review
|
||||||
|
team and the Production Readiness Review team[^1] before it is approved. Each set of reviewers is
|
||||||
|
looking to make sure that the proposal meets their standards in order to have a stable and
|
||||||
|
performant Kubernetes release. Only after all approvals are secured, can an author go forth and
|
||||||
|
merge their feature in the Kubernetes code base.
|
||||||
|
|
||||||
|
|
||||||
|
**FSM: I see, quite a bit of additional structure was added. Looking back, what were the most
|
||||||
|
significant improvements of that approach?**
|
||||||
|
|
||||||
|
**KG**: In general, I think that the improvements with the most impact had to do with focusing on
|
||||||
|
the core intent of the KEP. KEPs exist not just to memorialize designs, but provide a structured way
|
||||||
|
to discuss and come to an agreement about different facets of the change. At the core of the KEP
|
||||||
|
process is communication and consideration.
|
||||||
|
|
||||||
|
To that end, some of the significant changes revolve around a more detailed and accessible KEP
|
||||||
|
template. A significant amount of work was put in over time to get the
|
||||||
|
[k/enhancements](https://github.com/kubernetes/enhancements) repo into its current form -- a
|
||||||
|
directory structure organized by SIG with the contours of the modern KEP template (with
|
||||||
|
Proposal/Motivation/Design Details subsections). We might take that basic structure for granted
|
||||||
|
today, but it really represents the work of many people trying to get the foundation of this process
|
||||||
|
in place over time.
|
||||||
|
|
||||||
|
As Kubernetes matures, we’ve needed to think about more than just the end goal of getting a single
|
||||||
|
feature merged. We need to think about things like: stability, performance, setting and meeting user
|
||||||
|
expectations. And as we’ve thought about those things the template has grown more detailed. The
|
||||||
|
addition of the Production Readiness Review was major as well as the enhanced testing requirements
|
||||||
|
(varying at different stages of a KEP’s lifecycle).
|
||||||
|
|
||||||
|
## Current areas of focus
|
||||||
|
|
||||||
|
**FSM: Speaking of maturing, we’ve [recently released Kubernetes
|
||||||
|
v1.31](https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/), and work on v1.32 [has
|
||||||
|
started](https://github.com/fsmunoz/sig-release/tree/release-1.32/releases/release-1.32). Are there
|
||||||
|
any areas that the Enhancements sub-project is currently addressing that might change the way things
|
||||||
|
are done?**
|
||||||
|
|
||||||
|
**KG**: We’re currently working on two things:
|
||||||
|
|
||||||
|
1) _Creating a Process KEP template._ Sometimes people want to harness the KEP process for
|
||||||
|
significant changes that are more process oriented rather than feature oriented. We want to
|
||||||
|
support this because memorializing changes is important and giving people a better tool to do so
|
||||||
|
will only encourage more discussion and transparency.
|
||||||
|
2) _KEP versioning._ While our template changes aim to be as non-disruptive as possible, we
|
||||||
|
believe that it will be easier to track and communicate those changes to the community better with
|
||||||
|
a versioned KEP template and the policies that go alongside such versioning.
|
||||||
|
|
||||||
|
Both features will take some time to get right and fully roll out (just like a KEP feature) but we
|
||||||
|
believe that they will both provide improvements that will benefit the community at large.
|
||||||
|
|
||||||
|
**FSM: You mentioned improvements: I remember when project boards for Enhancement tracking were
|
||||||
|
introduced in recent releases, to great effect and unanimous applause from release team members. Was
|
||||||
|
this a particular area of focus for the subproject?**
|
||||||
|
|
||||||
|
**KG**: The Subproject provided support to the Release Team’s Enhancement team in the migration away
|
||||||
|
from using the spreadsheet to a project board. The collection and tracking of enhancements has
|
||||||
|
always been a logistical challenge. During my time on the Release Team, I helped with the transition
|
||||||
|
to an opt-in system of enhancements, whereby the SIG leads "opt-in" KEPs for release tracking. This
|
||||||
|
helped to enhance communication between authors and SIGs before any significant work was undertaken
|
||||||
|
on a KEP and removed toil from the Enhancements team. This change used the existing tools to avoid
|
||||||
|
introducing too many changes at once to the community. Later, the Release Team approached the
|
||||||
|
Subproject with an idea of leveraging GitHub Project Boards to further improve the collection
|
||||||
|
process. This was to be a move away from the use of complicated spreadsheets to using repo-native
|
||||||
|
labels on [k/enhancement](https://github.com/kubernetes/enhancements) issues and project boards.
|
||||||
|
|
||||||
|
**FSM: That surely adds an impact on simplifying the workflow...**
|
||||||
|
|
||||||
|
**KG**: Removing sources of friction and promoting clear communication is very important to the
|
||||||
|
Enhancements Subproject. At the same time, it’s important to give careful consideration to
|
||||||
|
decisions that impact the community as a whole. We want to make sure that changes are balanced to
|
||||||
|
give an upside and while not causing any regressions and pain in the rollout. We supported the
|
||||||
|
Release Team in ideation as well as through the actual migration to the project boards. It was a
|
||||||
|
great success and exciting to see the team make high impact changes that helped everyone involved in
|
||||||
|
the KEP process!
|
||||||
|
|
||||||
|
## Getting involved
|
||||||
|
|
||||||
|
**FSM: For those reading that might be curious and interested in helping, how would you describe the
|
||||||
|
required skills for participating in the sub-project?**
|
||||||
|
|
||||||
|
**KG**: Familiarity with KEPs either via experience or taking time to look through the
|
||||||
|
kubernetes/enhancements repo is helpful. All are welcome to participate if interested - we can take
|
||||||
|
it from there.
|
||||||
|
|
||||||
|
**FSM: Excellent! Many thanks for your time and insight -- any final comments you would like to
|
||||||
|
share with our readers?**
|
||||||
|
|
||||||
|
**KG**: The Enhancements process is one of the most important parts of Kubernetes and requires
|
||||||
|
enormous amounts of coordination and collaboration of people and teams across the project to make it
|
||||||
|
successful. I’m thankful and inspired by everyone’s continued hard work and dedication to making the
|
||||||
|
project great. This is truly a wonderful community.
|
||||||
|
|
||||||
|
|
||||||
|
[^1]: For more information, check the [Production Readiness Review spotlight
|
||||||
|
interview](https://kubernetes.io/blog/2023/11/02/sig-architecture-production-readiness-spotlight-2023/)
|
||||||
|
in this series.
|
Loading…
Reference in New Issue