|
| 1 | +--- |
| 2 | +layout: blog |
| 3 | +title: "Spotlight on SIG Release (Release Team Subproject)" |
| 4 | +date: 2024-01-15 |
| 5 | +slug: sig-release-spotlight-2023 |
| 6 | +canonicalUrl: https://www.kubernetes.dev/blog/2024/01/15/sig-release-spotlight-2023/ |
| 7 | +--- |
| 8 | + |
| 9 | +**Author:** Nitish Kumar |
| 10 | + |
| 11 | +The Release Special Interest Group (SIG Release), where Kubernetes sharpens its blade |
| 12 | +with cutting-edge features and bug fixes every 4 months. Have you ever considered how such a big |
| 13 | +project like Kubernetes manages its timeline so efficiently to release its new version, or how |
| 14 | +the internal workings of the Release Team look like? If you're curious about these questions or |
| 15 | +want to know more and get involved with the work SIG Release does, read on! |
| 16 | + |
| 17 | +SIG Release plays a crucial role in the development and evolution of Kubernetes. |
| 18 | +Its primary responsibility is to manage the release process of new versions of Kubernetes. |
| 19 | +It operates on a regular release cycle, [typically every three to four months](https://www.kubernetes.dev/resources/release/). |
| 20 | +During this cycle, the Kubernetes Release Team works closely with other SIGs and contributors |
| 21 | +to ensure a smooth and well-coordinated release. This includes planning the release schedule, setting deadlines for code freeze and testing |
| 22 | +phases, as well as creating release artefacts like binaries, documentation, and release notes. |
| 23 | + |
| 24 | +Before you read further, it is important to note that there are two subprojects under SIG |
| 25 | +Release - _Release Engineering_ and _Release Team_. |
| 26 | + |
| 27 | +In this blog post, [Nitish Kumar](https://twitter.com/nitishfy) interviews Verónica |
| 28 | +López (PlanetScale), Technical Lead of SIG Release, with the spotlight on the Release Team |
| 29 | +subproject, how the release process looks like, and ways to get involved. |
| 30 | + |
| 31 | + 1. **What is the typical release process for a new version of Kubernetes, from initial planning |
| 32 | + to the final release? Are there any specific methodologies and tools that you use to ensure a smooth release?** |
| 33 | + |
| 34 | + The release process for a new Kubernetes version is a well-structured and community-driven |
| 35 | + effort. There are no specific methodologies or |
| 36 | + tools as such that we follow, except a calendar with a series of steps to keep things organised. |
| 37 | + The complete release process looks like this: |
| 38 | + |
| 39 | + - **Release Team Onboarding:** We start with the formation of a Release Team, which includes |
| 40 | + volunteers from the Kubernetes community who will be responsible for managing different |
| 41 | + components of the new release. This is typically done before the previous release is about to |
| 42 | + wrap up. Once the team is formed, new members are onboarded while the Release Team Lead and |
| 43 | + the Branch Manager propose a calendar for the usual deliverables. As an example, you can take a look |
| 44 | + at [the v1.29 team formation issue](https://github.com/kubernetes/sig-release/issues/2307) created at the SIG Release |
| 45 | + repository. For a contributor to be the part of Release Team, they typically go through the |
| 46 | + Release Shadow program, but that's not the only way to get involved with SIG Release. |
| 47 | + |
| 48 | + - **Beginning Phase:** In the initial weeks of each release cycle, SIG Release diligently |
| 49 | + tracks the progress of new features and enhancements outlined in Kubernetes Enhancement |
| 50 | + Proposals (KEPs). While not all of these features are entirely new, they often commence |
| 51 | + their journey in the alpha phase, subsequently advancing to the beta stage, and ultimately |
| 52 | + attaining the status of stability. |
| 53 | + |
| 54 | + - **Feature Maturation Phase:** We usually cut a couple of Alpha releases, containing new |
| 55 | + features in an experimental state, to gather feedback from the community, followed by a |
| 56 | + couple of Beta releases, where features are more stable and the focus is on fixing bugs. Feedback |
| 57 | + from users is critical at this stage, to the point where sometimes we need to cut an |
| 58 | + additional Beta release to address bugs or other concerns that may arise during this phase. Once |
| 59 | + this is cleared, we cut a _release candidate_ (RC) before the actual release. Throughout |
| 60 | + the cycle, efforts are made to update and improve documentation, including release notes |
| 61 | + and user guides, a process that, in my opinion, deserves its own post. |
| 62 | + |
| 63 | + - **Stabilisation Phase:** A few weeks before the new release, we implement a _code freeze_, and |
| 64 | + no new features are allowed after this point: this allows the focus to shift towards testing |
| 65 | + and stabilisation. In parallel to the main release, we keep cutting monthly patches of old, |
| 66 | + officially supported versions of Kubernetes, so you could say that the lifecycle of a Kubernetes |
| 67 | + version extends for several months afterwards. Throughout the complete release cycle, efforts |
| 68 | + are made to update and improve documentation, including release notes and user guides, a |
| 69 | + process that, in our opinion, deserves its own post. |
| 70 | + |
| 71 | +  |
| 72 | + |
| 73 | + |
| 74 | +2. **How do you handle the balance between stability and introducing new features in each |
| 75 | + release? What criteria are used to determine which features make it into a release?** |
| 76 | + |
| 77 | + It’s a neverending mission, however, we think |
| 78 | + that the key is in respecting our process and guidelines. Our guidelines are the result of |
| 79 | + hours of discussions and feedback from dozens of members of the community who bring a wealth of knowledge and experience to the project. If we |
| 80 | + didn’t have strict guidelines, we would keep having the same discussions over and over again, |
| 81 | + instead of using our time for more productive topics that needs our attention. All the |
| 82 | + critical exceptions require consensus from most of the team members, so we can ensure quality. |
| 83 | + |
| 84 | + The process of deciding what makes it into a release starts way before the Release Teams |
| 85 | + takes over the workflows. Each individual SIG along with the most experienced contributors |
| 86 | + gets to decide whether they’d like to include a feature or change, so the planning and ultimate |
| 87 | + approval usually belongs to them. Then, the Release Team makes sure those contributions meet |
| 88 | + the requirements of documentation, testing, backwards compatibility, among others, before |
| 89 | + officially allowing them in. A similar process happens with cherry-picks for the monthly patch |
| 90 | + releases, where we have strict policies about not accepting PRs that would require a full KEP, |
| 91 | + or fixes that don’t include all the affected branches. |
| 92 | + |
| 93 | +3. **What are some of the most significant challenges you’ve encountered while developing |
| 94 | +and releasing Kubernetes? How have you overcome these challenges?** |
| 95 | + |
| 96 | + Every cycle of release brings its own array of |
| 97 | + challenges. It might involve tackling last-minute concerns like newly discovered Common Vulnerabilities and Exposures (CVEs), |
| 98 | + resolving bugs within our internal tools, or addressing unexpected regressions caused by |
| 99 | + features from previous releases. Another obstacle we often face is that, although our |
| 100 | + team is substantial, most of us contribute on a volunteer basis. Sometimes it can feel like |
| 101 | + we’re a bit understaffed, however we always manage to get organised and make it work. |
| 102 | + |
| 103 | +4. **As a new contributor, what should be my ideal path to get involved with SIG Release? In |
| 104 | +a community where everyone is busy with their own tasks, how can I find the right set of tasks to contribute effectively to it?** |
| 105 | + |
| 106 | + Everyone's way of getting involved within the Open Source community is different. SIG Release |
| 107 | + is a self-serving team, meaning that we write our own tools to be able to ship releases. We |
| 108 | + collaborate a lot with other SIGs, such as [SIG K8s Infra](https://github.com/kubernetes/community/blob/master/sig-k8s-infra/README.md), but all the tools that we used needs to be |
| 109 | + tailor-made for our massive technical needs, while reducing costs. This means that we are |
| 110 | + constantly looking for volunteers who’d like to help with different types of projects, beyond “just” cutting a release. |
| 111 | + |
| 112 | + Our current project requires a mix of skills like [Go](https://go.dev/) programming, |
| 113 | + understanding Kubernetes internals, Linux packaging, supply chain security, technical |
| 114 | + writing, and general open-source project maintenance. This skill set is always evolving as our project grows. |
| 115 | + |
| 116 | + For an ideal path, this is what we suggest: |
| 117 | + |
| 118 | + - Get yourself familiar with the code, including how features are managed, the release calendar, and the overall structure of the Release Team. |
| 119 | + - Join the Kubernetes community communication channels, such as [Slack](https://communityinviter.com/apps/kubernetes/community) (#sig-release), where we are particularly active. |
| 120 | + - Join the [SIG Release weekly meetings](https://github.com/kubernetes/community/tree/master/sig-release#meetings) |
| 121 | + which are open to all in the community. Participating in these meetings is a great way to learn about ongoing and future projects that |
| 122 | + you might find relevant for your skillset and interests. |
| 123 | + |
| 124 | + Remember, every experienced contributor was once in your shoes, and the community is often more than willing to guide and support newcomers. |
| 125 | + Don't hesitate to ask questions, engage in discussions, and take small steps to contribute. |
| 126 | +  |
| 127 | + |
| 128 | +5. **What is the Release Shadow Program and how is it different from other shadow programs included in various other SIGs?** |
| 129 | + |
| 130 | + The Release Shadow Program offers a chance for interested individuals to shadow experienced |
| 131 | + members of the Release Team throughout a Kubernetes release cycle. This is a unique chance to see all the hard work that a |
| 132 | + Kubernetes release requires across sub-teams. A lot of people think that all we do is cut a release every three months, but that’s just the |
| 133 | + top of the iceberg. |
| 134 | + |
| 135 | + Our program typically aligns with a specific Kubernetes release cycle, which has a |
| 136 | + predictable timeline of approximately three months. While this program doesn’t involve writing new Kubernetes features, it still |
| 137 | + requires a high sense of responsibility since the Release Team is the last step between a new release and thousands of contributors, so it’s a |
| 138 | + great opportunity to learn a lot about modern software development cycles at an accelerated pace. |
| 139 | + |
| 140 | +6. **What are the qualifications that you generally look for in a person to volunteer as a release shadow/release lead for the next Kubernetes release?** |
| 141 | + |
| 142 | + While all the roles require some degree of technical ability, some require more hands-on |
| 143 | + experience with Go and familiarity with the Kubernetes API while others require people who |
| 144 | + are good at communicating technical content in a clear and concise way. It’s important to mention that we value enthusiasm and commitment over |
| 145 | + technical expertise from day 1. If you have the right attitude and show us that you enjoy working with Kubernetes and or/release |
| 146 | + engineering, even if it’s only through a personal project that you put together in your spare time, the team will make sure to guide |
| 147 | + you. Being a self-starter and not being afraid to ask questions can take you a long way in our team. |
| 148 | + |
| 149 | +7. **What will you suggest to someone who has got rejected from being a part of the Release Shadow Program several times?** |
| 150 | + |
| 151 | + Keep applying. |
| 152 | + |
| 153 | + With every release cycle we have had an exponential growth in the number of applicants, |
| 154 | + so it gets harder to be selected, which can be discouraging, but please know that getting rejected doesn’t mean you’re not talented. It’s |
| 155 | + just practically impossible to accept every applicant, however here's an alternative that we suggest: |
| 156 | + |
| 157 | + *Start attending our weekly Kubernetes SIG Release meetings to introduce yourself and get familiar with the team and the projects we are working on.* |
| 158 | + |
| 159 | + The Release Team is one of the way to join SIG Release, but we are always looking for more hands to help. Again, in addition to certain |
| 160 | + technical ability, the most sought after trait that we look for is people we can trust, and that requires time. |
| 161 | +  |
| 162 | + |
| 163 | +8. **Can you discuss any ongoing initiatives or upcoming features that the release team is particularly excited about for Kubernetes v1.28? How do these advancements align with the long-term vision of Kubernetes?** |
| 164 | + |
| 165 | + We are excited about finally publishing Kubernetes packages on community infrastructure. It has been something that we have been wanting to do for a few years now, but it’s a project |
| 166 | + with many technical implications that must be in place before doing the transition. Once that’s done, we’ll be able to increase our productivity and take control of the entire workflows. |
| 167 | + |
| 168 | +## Final thoughts |
| 169 | + |
| 170 | +Well, this conversation ends here but not the learning. I hope this interview has given you some idea about what SIG Release does and how to |
| 171 | +get started in helping out. It is important to mention again that this article covers the first subproject under SIG Release, the Release Team. |
| 172 | +In the next Spotlight blog on SIG Release, we will provide a spotlight on the Release Engineering subproject, what it does and how to |
| 173 | +get involved. Finally, you can go through the [SIG Release charter](https://github.com/kubernetes/community/tree/master/sig-release) to get a more in-depth understanding of how SIG Release operates. |
0 commit comments